带有数据解析的JQuery $ .post

时间:2012-09-20 18:01:12

标签: php jquery ajax json

我正在尝试使用JQuery基于使用json_encode(array)从外部PHP文件发送的数组来填充文本框。选择的选择框选项确定将哪个选项值发送到外部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);

?>

2 个答案:

答案 0 :(得分:1)

如果您有文本框,请考虑使用.val()代替.html.val()应该用于设置表单元素的值。

此外,不推荐使用.live()方法,因此请停止使用。

  

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()来   附加事件处理程序。旧版jQuery的用户应该使用   .delegate()优先于.live()。

答案 1 :(得分:0)

您使用错误的jquery方法将值放入文本框

替换此

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

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

希望这能解决您的问题。