データベースからドロップダウンを入力しようとしました。結果をクエリして配列に追加します。次に、json_encode を使用してデータを php ファイルに送信します。
$query="SELECT project FROM main";
$results = $db->query($query);
while ($row_id = $results->fetchArray()) {
$proj_option[] = "<option value=\"".$row_id['project']."\">".$row_id['project']."</option>\n";
$pselected=$row_id['project'];
}
$output = array( "proj" => $proj_option);
echo json_encode($output);
私のphpファイルでは、jquery ajaxを使用してドロップダウンを埋めています。
$("#turninId").change(function() {
var user_id = $("#turninId").val();
$.ajax ( {
url:"send_input.php",
type: "POST",
dataType: "json",
data:{id_selection: user_id},
success:function(response) {
for (var i=0; i<response.proj.length; i++) {
$("#exp").html(response.proj[i]);
$("#project").html(response.proj[i]); } });
});
これは素晴らしいことですが、ドロップダウンの唯一の項目はデータベースの最後の項目です。たとえば、私のデータベースには Project の下に次の項目があります。
Project: up, down, low, right
しかし、私のドロップダウンは最後のエントリ「右」でしか埋められません。どうしてこれなの?どうすれば修正できますか?
while ループの PHP json_encode()も同様で、変更を加えましたが、ここに何かが欠けています。