使用jquery,php填充textarea

时间:2014-04-22 23:14:31

标签: javascript php jquery

我有一个select选项,我想用jquery填充选择选项更改的textarea。

这是我的代码:

<html><head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function getvalues() {
    var txt = $("textaera[name='txt']:text").val(); 

    $.ajax({ url: "demo_test6.php",
        data: {"txt":txt},
        type: 'get',
        dataType: "json",
        success: function(output) {
            console.log(output);
            $("textarea#txt").text(output[0]);
        }
    });
}
</script>
</head>
<body>
    <form action="demo_test6.php">
        <label for="ctlJob">Job Function:</label>
        <select name="id" id="ctlJob"  onblur="getvalues() " onchange="getvalues()">
            <option value="none" selected="selected">-- Select One --</option>
            <option value="1">Managers</option>
            <option value="2">Team Leaders</option>
            <option value="3">Developers</option>
        </select>

    <textarea nama="txt" id="txt">
        return value should be here
    </textarea>
    <input type="submit" name="action" value="Book" />
    </form>
</body>
</html>

PHP(demo_test.php)

<?php

include 'Connect.php';  //Connection to database
$personid=$_GET['id'];
$requete = mysql_query("SELECT shortinfo FROM person where personid='$personid'");
$rownmbr = mysql_numrows($requete);
for ($i=0; $i<$rownmbr; $i++) {
    echo $result = mysql_result($requete,$i);
    $response = array('$result'); // add return data to an array
    echo json_encode($response); // json encode that array
}

exit;

?>

当我选择一个选项时,在textarea上没有发生任何事情,我花了四天没有找到任何解决方案,

请告诉我是否有错误?或者如果我需要在我的代码中更改或添加内容!!

2 个答案:

答案 0 :(得分:0)

如果您有超过1个DB记录,那么您将在服务器响应中拥有无效的JSON,因为您对每个记录单独进行JSON编码。

此外,现在,您的echo $result = mysql_result($requete,$i);将自动创建无效的JSON。

要使jQuery JSON解析起作用,您必须在响应中返回一个且只有一个有效的JSON数据结构。

答案 1 :(得分:0)

由于行var txt = $("textaera[name='txt']:text").val()

,您已发送textarea的值而不是所选的选项

JSON的经验法则,直到您熟悉它:将您的响应数据构建为纯PHP数据,并且只在完成所有操作后通过json_encode返回