gpt4 book ai didi

php - 如何使用 jQuery 添加 activeDropDownList 到表单? PHP-Yii2

转载 作者:行者123 更新时间:2023-12-01 07:52:52 24 4
gpt4 key购买 nike

问题说明了一切,我昨天问过 How to add fields to activeform with js/jQuery in Yii2?

现在我需要添加一个下拉菜单,这不是同一件事......

我有这个:

use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
use app\models\User;
use app\models\ContactType;

$cntcttp = new ContactType;

$this->registerJs('$("#btnadd").on("click",function(){'
. '$("#dynamicInput").append(\''
. Html::textInput("contacto","",['placeholder'=>"contacto"])
. '\');'
. '})');

?>

<?php $form = ActiveForm::begin(); ?>

<div id="dynamicInput"></div>

<?= Html::activeDropDownList($cntcttp, 'ContactTypeID',
ArrayHelper::map($ctypes, 'ContactTypeID', 'Name') , ['prompt'=>'--contacto--']) ?>


<input type='button' id='btnadd' value="add contact">
<div class="form-group">
<?= Html::submitInput('Submit', ['class' => 'btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>

现在我需要在用户单击 #btnadd 时显示 dorpdown,而不是我现在的内容:P

提前谢谢您:)

最佳答案

这几乎是同一件事。只需像下面这样做:

$this->registerJs('$("#btnadd").on("click",function(){'
. '$("#dynamicInput").append(\''
. Html::activeDropDownList($cntcttp, 'ContactTypeID',
ArrayHelper::map($ctypes, 'ContactTypeID', 'Name') , ['prompt'=>'--contacto--'])
. '\');'
. '})');

仅此而已。

<小时/>

您可能会在 javascript 中遇到语法错误,因为 Yii 将 \n 放入下拉列表中。避免语法错误的最肮脏方法是执行以下操作:

$this->registerJs('$("#btnadd").on("click",function(){'
. '$("#dynamicInput").append(\''
. str_replace("\n", "", Html::activeDropDownList($cntcttp, 'ContactTypeID',
ArrayHelper::map($ctypes, 'ContactTypeID', 'Name') , ['prompt'=>'--contacto--']))
. '\');'
. '})');
<小时/>

特别感谢 Soju 在评论中提到使用 json_encode()

但是,我写道,最肮脏的方法是使用 str_replace(),但是,您可以使用 json_encode() 来代替,这是一个更优雅的解决方案:

$this->registerJs('$("#btnadd").on("click",function(){'
. '$("#dynamicInput").append('
. json_encode(Html::activeDropDownList($cntcttp, 'ContactTypeID',
ArrayHelper::map($ctypes, 'ContactTypeID', 'Name') , ['prompt'=>'--contacto--']))
. ');'
. '})');

关于php - 如何使用 jQuery 添加 activeDropDownList 到表单? PHP-Yii2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27553269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com