これは難しい..私は初めて ajax を使用しようとしています。基本的に、最初のフィールドからオプションを選択すると、js と xml は、SQL テーブルから取得した情報に基づいて次のドロップダウンを作成する php スクリプトを実行します。驚いたことに、私の最初の試みでは、すべてがうまく機能します。問題は、最終的なクエリを実行すると、ポストされる変数 ( $_POST['ports'];
) が、タグで選択された値ではなく、単一の空白文字に評価されるときに発生します。コードの時間:
html:
<h1>Enter port data to set how your table will look</h1>
<select style="width:150px;" onChange="showUser(this.value)">
<option value="">Select A Table Type</option>
<option value="option1">option1</option>
<option value="247">Custom</option>
</select>
<br>
<div id="select2">
</div>
JavaScript:
function showUser(str){
document.getElementById('hide').style.display='none';
document.getElementById('select2').innerHTML="";
if(str===""){
document.getElementById('hide').style.display='none';
document.getElementById('select2').innerHTML="";
return;
}
if(str==="247"){
document.getElementById('hide').style.display='block';
return;
}
// code for IE7+, Firefox, Chrome, Opera, Safari
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
// code for IE6, IE5
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//set up return
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("select2").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethtml.php?q="+str,true);
xmlhttp.send();
}
gethtml.php
//include connection
include 'log.php';
//get vars
$q=$_GET['q'];
//make the query
$sql = "SELECT DISTINCT Model
FROM tbl
WHERE Manufacturer = '".$q."'";
//make the new box
echo '<select name="ports" style="width:150px;">';
echo '<option>Select A Port Total</option>';
$i=1;
foreach($conn->query($sql) as $row) {
echo $row['Model'];
echo '<option value="'.$row['Model'].'">'.$row['Model'].'</option>';
$i++;
}
echo "</select>";
したがって、すべてが gethtml.php に送信されます。クエリは正しく実行され、<select>
ボックスはそこにありますが、その<select>
一部にエラーがあるようで、それが何であるかわかりません。<select>
これは、めちゃくちゃになっているフォームを送信した後に実行される送信 php のスニペットです。
echo "<pre>";print_r($_POST);echo"</pre>";
出力する
Array
(
[ports] =>
)
わかりませんが、そのビットを強調表示すると、そこに空白文字があり、それを実行して、isset()
私が正しかったこと、そこに文字があることを確認しました。
これは、firebug で表示したときに xml で作成された html の画像です。
誰にもアイデアはありますか?これは非常にイライラさせられます..明らかに、firebugの画像は本来あるべき姿ではないことを示しています...さらに情報が必要な場合は、お問い合わせください
注目に値する場合は、クロムを使用しています。