0

我有一些使用 xmlhttp.responsetext 提取一些 mysql 数据的 javascript。我一直在使用它来填充下拉框的表单数据,并且运行良好。但是,我需要在表单中添加第二个下拉菜单,但它无法正常工作。

发生的情况是两个下拉列表都填充了来自 2 个不同表的数据,而每个下拉列表应该只从其各自的表中获取其数据。

可以使用一些帮助解决这个问题,谢谢。

这是javascript代码。

<script type="text/javascript">
var counter = 1;
     function addInput(div){
        xmlhttp=new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
         if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
          var newdiv = document.createElement(div);
          newdiv.innerHTML = "<table><tr><td>Line Item " + (++counter) + "</td></tr><tr><td width='190'>Item: <select name='item[]'>" + xmlhttp.responseText.split( "[BRK]" ) + "</select></td><td width='100'>Qty: <input name='quantity[]' type='text' size='2' /></td><td width='500'>Description: <input name='description[]' type='text' size='60' /></td><td width='150'>Amount: <input name='amount[]' type='text' size='6' /></td><td>Tax Rate: <select name='taxrate[]'>" + xmlhttp.responseText.split( "BRK" ) + "</select></td></tr></table><br />";
         }
          document.getElementById(div).appendChild(newdiv);
     }

xmlhttp.open("GET", "dropdownquery.php", false);
xmlhttp.send();

}
</script>

这是php。

<?php
include $_SERVER['DOCUMENT_ROOT']."/connect.php";

$result = mysql_query("SELECT * FROM salesitem");
$result2 = mysql_query("SELECT * FROM salestax");

while($row = mysql_fetch_array($result)) {
    echo "<option value=\"".$row['name']."\">".$row['name']."</option>";
}
echo "[BRK]";    

while($row2 = mysql_fetch_array($result2)) {
    echo "<option value=\"".$row2['amount']."\">".$row2['name']."</option>";
}
echo "[BRK]";    

?>
4

1 回答 1

3

拆分字符串时,会得到一个数组。我想你想这样做:

var splitResponse = xmlhttp.responseText.split( "[BRK]" );
var firstDropdownContent = splitResponse[0];
var secondDropdownContent = splitResponse[1];

然后使用这两个新变量来构建您的 HTML。

于 2013-03-27T22:04:26.370 回答