我有一个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上没有发生任何事情,我花了四天没有找到任何解决方案,
请告诉我是否有错误?或者如果我需要在我的代码中更改或添加内容!!
答案 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()
JSON的经验法则,直到您熟悉它:将您的响应数据构建为纯PHP数据,并且只在完成所有操作后通过json_encode返回