0

xmlhttp.responsetext を使用して mysql データを取得する JavaScript があります。ドロップダウンボックスのフォームデータを入力するためにそれを使用してきましたが、うまく機能しています。ただし、フォームに 2 番目のドロップダウン メニューを追加する必要があり、正しく機能していません。

何が起こっているかというと、各ドロップダウンがそれぞれのテーブルからのみデータを取得する必要があるときに、両方のドロップダウンに 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];

次に、2 つの新しい変数を使用して HTML を作成します。

于 2013-03-27T22:04:26.370 に答える