1

我正在尝试使用 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);

?>
4

2 回答 2

1

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

此外,该.live()方法已被弃用,因此请停止使用它。

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

于 2012-09-20T18:05:44.280 回答
0

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

替换这个

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

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

希望这能解决您的问题。

于 2012-09-20T18:05:47.783 回答