如何在两个不同的文本框元素中分配ajax响应?(每个文本框中的值不同)

时间:2014-09-16 05:53:34

标签: javascript php ajax

<?php
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', "");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("sr_db", $con);

$sql="SELECT * FROM client_info WHERE name like '".$q."'";

$result = mysql_query($sql);


$row = mysql_fetch_array($result);


echo $row['address'];
echo $row['balance'];


mysql_close($con);
?>

我想在主页上的两个不同的文本框中显示两条回声线... 我也写了ajax代码行,它也运行....但不知道如何在两个不同的文本框中显示回显线的值

<script>
function showUser(str)
{
if (str=="")
{
document.getElementById("address").value="";
return;
} 
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
document.getElementById("address").value=xmlhttp.responseText;
        }
}

xmlhttp.open("GET","ajax_search_address.php?q="+str,true);
xmlhttp.send();
}
</script>

2 个答案:

答案 0 :(得分:0)

您应该考虑使用json_encode()从PHP发送响应并解析响应: https://mathiasbynens.be/notes/xhr-responsetype-json

除此之外,您可以在PHP中设置分隔符,并使用javascript进行拆分。例如:

<?php
echo $row['address'] . "|" . $row['balance'];
?>

的Javascript

values = xlmhttp.responseText.split("|");
document.getElementById("address").value=values[0];
document.getElementById("balance").value=values[1];

答案 1 :(得分:0)

以json格式获取响应。它在ajax调用中接收时作为数组工作,然后可以相应地解析数据。

在服务器中

echo json_encode(array('address' => $row['address'], 'balance' => $row['balance']));

在ajax结束

$.ajax({
url: "php page url",

type: 'GET',
dataType: 'json',

success: function(json) {
 $('.address').val(json.address);
 $('.balance').val(json.balance);
    }
});