更改yii中所选项目的下拉列表内容


Changing contents of a drop down list on changing the selected item in yii

我有一个下拉列表,在选择items项时,我想使用ajax调用更新这个下拉列表的内容,一切都很好,但我不知道如何将ajax调用返回的数组放在回调函数中,因为数据应该用于更新我的下拉列表。提前感谢

如果在ajax调用后需要添加大量数据,我过去所做的就是在控制器(yii)中设置html,并将完全更新的列表作为ajax调用的返回。在ajax成功回调中替换这样的选项要比将大量变量转换为javascript容易得多。希望这能有所帮助。

在你的Yii控制器中,我会做这样的事情:

$response = [];
$response["newDropdownValues"] = "<option>Value 1</option><option>Value 2</option>";
$this->controller->sendResponse(200, $response);

在您的ajax回调中,您会写下这样的内容:

success: function(output) {
            var reply = jQuery.parseJSON(output);
            $(this).find('select').html(reply.newDropdownValues);
    },

您需要做更好的研究,因为像这样的问题已经在Stack Overflow中得到了回答(可能不止一次)。这里有最好的,完美的,但非常简单的例子。

通常,您必须使用jQuery的.each方法来遍历所有元素。您可以迭代您的结果(因为您说过,它是一个数组),也可以迭代您选择的子项。无论哪种方式都应该有效,选择最适合您的解决方案。

这里还有一个问题可以给你带来一个好主意,如何解决这个问题。

这只是两个例子,仅限于Stack Overflow。如果你做得更好,我敢肯定,你会在互联网上找到数百个类似的例子。