1

json_encode(array) を使用して外部 PHP ファイルから送信された配列に基づいて、JQuery を使用してテキストボックスに入力しようとしています。選択された選択ボックス オプションによって、どのオプション値が外部 PHP ファイルに送信されるかが決まります。残念ながら、私のテキストボックスは常に空です。Firebug と lint サイトでデバッグしようとしてきましたが、人口がない理由がわかりません。このセキュリティ部分は無視してください

メイン インデックス ページのスニペット:

function loadDoc()
{
   $('#verb').live('change', function()
   {
      $.post("loadTextBox.php", {verb_value: $(this).val()},
      function(data)
      {
         $("#textbox").html(data.first);
         $("#textbox2").html(data.second);
         $("#textbox3").html(data.third);
         $("#textbox4").html(data.fourth);
         $("#textbox5").html(data.fifth);
         $("#textbox6").html(data.sitxh);
      },"json");
   });
}

外部 PHP ファイル コード:

<?php

header('Content-Type:application/json;charset=utf-8');

$file_absolute = "---placeholder for correct file path---";
include_once($file_absolute);
$mysql = new mysqli($db_host, $db_username, $db_password, $db_name);
$verb_value = $_POST['verb_value'];

$mysql->query("SET CHARACTER SET 'utf8'");

$result = $mysql->query("SELECT present_tense FROM $verb_value");

$queryResult = array();

while ($row = $result->fetch_object())
{
    $queryResult[] = $row->present_tense;
}
$textboxValue = $queryResult[0];
$textboxValue2 = $queryResult[1];
$textboxValue3 = $queryResult[2];
$textboxValue4 = $queryResult[3];
$textboxValue5 = $queryResult[4];
$textboxValue6 = $queryResult[5];
$array = array('first'=>$textboxValue,'second'=>
$textboxValue2,'third'=>$textboxValue3,'fourth'=>
$textboxValue4,'fifth'=>$textboxValue5,'sixth'=>
$textboxValue6);
echo json_encode($array);

?>
4

2 に答える 2

1

テキストボックスがある場合は、.val()代わりに使用することを検討してください.html.val()フォーム要素の値を設定するために使用する必要があります。

また、この.live()メソッドは非推奨ですので、使用を中止してください。

jQuery 1.7 以降、.live() メソッドは非推奨になりました。.on() を使用して、イベント ハンドラーをアタッチします。古いバージョンの jQuery のユーザーは、.live() よりも .delegate() を使用する必要があります。

于 2012-09-20T18:05:44.280 に答える
0

テキストボックスに値を入れるために間違ったjqueryメソッドを使用しています

これを交換

$("#textbox").html(data.first);

$("#textbox").val(data.first);

これで問題が解決することを願っています。

于 2012-09-20T18:05:47.783 に答える