Javascript PHP Ajax调用以清除和填充下拉菜单
您好,我在网页上有一个表单,例如包含一个汽车列表,如下所示:Javascript PHP Ajax调用以清除和填充下拉菜单,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,您好,我在网页上有一个表单,例如包含一个汽车列表,如下所示: <select name = "car" id="Cars" onchange="showForm()"> <option value="0">Toyota</option> <option value="1">Audi</option> <option value="2">Suzuki&l
<select name = "car" id="Cars" onchange="showForm()">
<option value="0">Toyota</option>
<option value="1">Audi</option>
<option value="2">Suzuki</option>
</select>
[models] => Array ( [0] => Array ( [modelName] => R8 ) [1] => Array ( [modelName] => A6 hatchback ) )
在
/project/main/getModels
中,用
迭代数组以形成代码,然后使用jquery.html()替换html即可
范例
如果ajax正在返回,请说
<option value="0">R8</option>
<option value="1">Quattro</option>
<option value="2">A6 hatchback</option>
在/project/main/getModels
中,用
迭代数组以形成代码,然后使用jquery.html()替换html即可
范例
如果ajax正在返回,请说
<option value="0">R8</option>
<option value="1">Quattro</option>
<option value="2">A6 hatchback</option>
首先,您需要更新您的select like
<select name = "car" id="Cars" onchange="getModels(this.value)">
<option value="0">Toyota</option>
<option value="1">Audi</option>
<option value="2">Suzuki</option>
丰田
奥迪
铃木
和模型
<select name = "model" id="models" onchange="showForm()">
</select>
<script type="text/javascript">
function getModels(v){
// var carTypeId = $(obj).attr('value');
$.ajax({
type: "POST",
url: "/project/main/getModels",
data: { 'carTypeId': v },
dataType:'json',
success: function(msg){
html = '';
if(msg.model){
for(i=0;i<msg.model.length;i++){
html += '<option value="'+msg.model[i][model_id]+'">'+ msg.model[i][model_name] +'</option>';
}
$('select[\'name=model\']').html(html);
}
}
});
}
$('select[name=\'car\']').trigger('change');
</script>
函数模型(v){
//var carTypeId=$(obj).attr('value');
$.ajax({
类型:“POST”,
url:“/project/main/getModels”,
数据:{'carTypeId':v},
数据类型:'json',
成功:功能(msg){
html='';
if(msg.model){
对于(i=0;i
首先,您需要更新您的选择
<select name = "car" id="Cars" onchange="getModels(this.value)">
<option value="0">Toyota</option>
<option value="1">Audi</option>
<option value="2">Suzuki</option>
丰田
奥迪
铃木
和模型
<select name = "model" id="models" onchange="showForm()">
</select>
<script type="text/javascript">
function getModels(v){
// var carTypeId = $(obj).attr('value');
$.ajax({
type: "POST",
url: "/project/main/getModels",
data: { 'carTypeId': v },
dataType:'json',
success: function(msg){
html = '';
if(msg.model){
for(i=0;i<msg.model.length;i++){
html += '<option value="'+msg.model[i][model_id]+'">'+ msg.model[i][model_name] +'</option>';
}
$('select[\'name=model\']').html(html);
}
}
});
}
$('select[name=\'car\']').trigger('change');
</script>
函数模型(v){
//var carTypeId=$(obj).attr('value');
$.ajax({
类型:“POST”,
url:“/project/main/getModels”,
数据:{'carTypeId':v},
数据类型:'json',
成功:功能(msg){
html='';
if(msg.model){
对于(i=0;i
以这种格式返回php结果
<option value="0">R8</option>
<option value="1">Quattro</option>
<option value="2">A6 hatchback</option>
未测试。希望这有帮助。以此格式返回php结果
<option value="0">R8</option>
<option value="1">Quattro</option>
<option value="2">A6 hatchback</option>
未测试。希望这有帮助。1.使您的API restful[也就是说,没有POST
到getModels
路径,而是GET
到/models
;2.通过json\u encode
返回一个json数组,然后在jQuery中对其进行迭代,并将s
附加到所需的
标记。我可以举个例子吗?附加模型会删除已经被选中的模型吗模型中的附加选项选择?附加不会[根据定义]删除任何内容。请自己尝试,您现在拥有搜索google的所有关键字:))1.使您的API保持restful状态[也就是说,没有POST
到getModels
路径,而是GET
到/models
;2.通过json\u encode
返回一个json数组,然后在jQuery中对其进行迭代,并将s
附加到所需的
标记。我可以举个例子吗?附加模型会删除已经被选中的模型吗模型中的选项选择?追加不会删除任何东西[根据定义]。你自己试试,你现在有搜索谷歌的所有关键字:))嗨,我知道这听起来很愚蠢-但我对网络编程完全不熟悉如何从php端一个接一个地返回每个选项这是我的数组中的一个foreach回音吗“option value='x'>”。model['modelName']。您不需要逐个返回。在foreach内部,您必须完整地构建一个选项。.foreach($array as$row){$str.=“modelName”}在php文件中。然后简单地回显$str?嗨,我知道这听起来很愚蠢-但我对web编程完全陌生。我如何从php端一个接一个地返回每个选项?这是我数组中回显“option value='x'>”的foreach。model['modelName']。您不需要逐个返回。在foreach内部,您必须完整地构建一个选项。..foreach($array as$row){$str.=“Modelname”}在php文件中。然后简单地回显$str?谢谢你的建议-但是我将以什么格式返回msg.model?它是json编码的数据吗?谢谢你让我更有意义-我将在测试后尝试此方法并将您标记为正确谢谢!OP希望附加到模型下拉列表。^true-这是php方面如何操作的最佳示例你的下拉列表值不是被替换了,而是被追加了吗?你提到你想在现有值中追加,我想是吧?谢谢你的建议-但是我应该以什么格式返回msg.model?是json编码的数据吗?谢谢,这更有意义-我会在测试后尝试并将你标记为正确谢谢!OP想追加到模型下拉列表。^true-这是PHP端操作的最佳示例,但下拉列表值不是被替换而不是追加吗?你提到过你想在现有值中追加吗?
$.ajax({
type: "POST",
url: "/project/main/getModels",
data: { 'carTypeId': carTypeId },
success: function(msg){
$('#models').html('');
$('#models').html(msg);
}
});