第二个选择框从jquery中的第一个选择框填充
我想从第一个选择框的值填充第二个选择框名称’ctype’。 但问题,仍然没有显示我附加的价值…我不知道如何..现在已经2周我试图解决..但仍然没有显示在第二个选择框..
cash.php
在第一个选择框上
--Choose One-- <option value="" >
第二个选择框
--Choose One--
jQuery的
$("#merchant").selectbox({ onChange:function(val,inst){ $.ajax({ type:"GET", data:{merchant:val}, url:"getctype.php", success:function(data){ $("#ctype").html(data); $("#ctype_id").selectbox(); } }); }, });
脚本getctype.php
这是我遵循的示例…第一个选择框中的值填充到第二个选择框… http://www.bulgaria-web-developers.com/projects/javascript/selectbox/index.php
首先,你getctype.php询问数据库并只返回一张卡。 可能是您应该迭代结果以返回多个值。 此外,建议返回JSON数据(可以通过Javascript轻松管理)。 你可以用一段代码来完成这项工作
PHP脚本返回的数据将是JSON响应,如:
["card1","card2","card3",....]
其次,当我们查看你的AJAX调用时,success函数正在用id ctype替换HTMLElement
$("#ctype").html(data);
具有id ctype的HTMLElement是
,因此
的内容完全取代了原始内容(卡片值),而不是a。 然后,你的第二行代码:
$("#ctype_id").selectbox();
不会有任何影响因为它不再存在(取而代之的是AJAX调用的内容返回)。
为了使它工作,你可以在JS中使用这个secon代码段:
// Assume the second select is already a **selectbox** // Make the first select a selectbox $("#merchant").selectbox({ onChange:function(val,inst){ // Run the ajax call to refresh the content of the second selectbox $.ajax({ type: "GET", data: { merchant: val }, url:"getctype.php", dataType: 'json', success: function(data) { // Remove previous content of your second selectbox $("#ctype_id").empty(); // Append default option $("#ctype_id").append($('')); // Loop on your data (which is an array) for(var i = 0 ; i < data.length ; i++) { $("#ctype_id").append($(document.createElement("option")) .val(data[i]) .html(data[i])); } } }); } });
如果你使用jquery,我应该做以下事情:
$("#merchant").on('change', function() { $('#ctype_id').empty(); $.get('getctype.php', function(data) { $(data).appendTo('#ctype_id'); }); });
你的PHP代码将是这样的:
echo '' $sql = mysql_query("select card from card_support where merchant_id = '$target'"); $getmerchant = mysql_fetch_assoc($sql); $card = $getmerchant['card']; echo '';