[英]Return json array from PHP to jQuery AJAX
我正在尝试做一些实验。 我想按产品名称在MySQL数据库中搜索产品,并在“价格输入”中检索价格,在“卖价输入”中出售价格。 示例图片
一切正常,除了将fetch.php数组检索为javascript变量以获取price和sellprice输入值。 我试图在php文件中使用json_encode来获取javascript中的php数组,但仍然无法正常工作。 我对javascript不太了解。 可能我没有正确编码,这就是为什么javascript无法获取php数组的原因。 任何帮助将不胜感激。 谢谢 :)
索引
<html>
<head>
<script src="js/jquery.js"></script>
</head>
<body>
<div class="productdetail">
<table class="productdetail">
<th>Product</th>
<th>Price</th>
<th>Sell price</th>
<tr>
<td><input class='product' type='text' name='product' /></td>
<td><input class='price' type='text' name='price' /></td>
<td><input type='text' class='sellprice' name=''/></td>
</tr>
</table>
<div id="result"></div>
</body>
</html>
<script>
$(function(){
$('.productdetail').delegate('.product,.price,.sellprice','keyup',function(){
var tr = $(this).parent().parent().parent();
var product = tr.find('.product').val();
if(product != '')
{
$.ajax({
url:"fetch.php",
method:"post",
data:{product:product},
dataType:"text",
success:function(data)
{
console.log(price);
var price = jQuery.parseJSON(price);
console.log(sellprice);
var sellprice = jQuery.parseJSON(sellprice);
//var price = "test price";
//var sellprice = "test sell price";
tr.find('.price').val(price);
tr.find('.sellprice').val(sellprice);
$('#result').html(data);
}
});
}
});
});
</script>
fetch.php
<?php
$product = strtolower($_POST["product"]);
require_once ('db.php');
$sql = "SELECT * FROM tbproduct WHERE product LIKE '$product'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) { {
$array = array(
'price' => $row["price"],
'sellprice' => $row["sellprice"],
);
echo json_encode($array);
}
}
} else {
echo 'Data Not Found';
}
?>
我知道了。 现在工作:)
$(function(){
$('.productdetail').delegate('.product,.price,.sellprice','keyup',function(){
var tr = $(this).parent().parent().parent();
var product = tr.find('.product').val();
if(product != '')
{
$.ajax({
url:"fetch.php",
method:"post",
data:{product:product},
//dataType:"json",
success:function(data)
{
var getarray = jQuery.parseJSON(data);
var price = getarray.price;
var sellprice = getarray.sellprice;
tr.find('.price').val(price);
tr.find('.sellprice').val(sellprice);
//$('#result').html(data);
}
});
}
});
});
尝试用数据替换ajax中的price参数,例如
$.ajax({ url:"fetch.php", method:"post", data:{product:product}, dataType:"text", success:function(data) { console.log(data); var price = jQuery.parseJSON(data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.