好的,我有一个java脚本,当输入字段停止输入操作时,它会触发ajax调用。
//setup before functions
var field = document.getElementById("UPC");
var table=document.getElementById("ScannedItems");
var typingTimer; //timer identifier
var doneTypingInterval = 1000; //time in ms, 1 seconds
//on keyup, start the countdown
$('#UPC').keyup(function(){
clearTimeout(typingTimer);
typingTimer = setTimeout(doneTyping, doneTypingInterval);
});
//on keydown, clear the countdown
$('#UPC').keydown(function(){
clearTimeout(typingTimer);
});
function doneTyping () {
//user is "finished typing," do something
var upc=document.getElementById("UPC").value;
document.getElementById("noScan").className="hidden";
document.getElementById("checkout").className="";
document.getElementById("void").className="";
var dataString = 'upc='+ upc;
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "assets/PagePHP/pos/scan.php",
data: dataString,
success: function() {
var row=table.insertRow(-1);
var cell1=row.insertCell(0);
var cell2=row.insertCell(1);
var cell3=row.insertCell(2);
var cell4=row.insertCell(3);
var cell5=row.insertCell(4);
var cell6=row.insertCell(5);
cell1.innerHTML =upc;
cell2.innerHTML ="Description";
cell3.innerHTML ="PRICE";
cell4.innerHTML ="QTY";
cell5.innerHTML ="TOTAL";
cell6.innerHTML ="ACTION";
field.value ='';
}
});
return false;
}
ajax 获取输入到表单中的 UPC,并使用它来获取该特定商品的描述和价格。我需要知道如何将该信息放回到 Java 脚本调用中以在表中创建行。来自 PHP 的项目需要返回到以下行中的 java 脚本中:(从上面的脚本中提取)
cell1.innerHTML =upc;
cell2.innerHTML ="Description";
cell3.innerHTML ="PRICE";
cell4.innerHTML ="QTY";
我的 php 简短而简单,如下所示:
$result = mysqli_query($con,"SELECT * FROM inventory WHERE item_upc='$_POST[upc]'");
while($row = mysqli_fetch_array($result))
{
echo $row['item_upc'];
echo $row['item_description'];
echo $row['item_price'];
}
这一切都必须在不刷新页面的情况下完成。我已经用谷歌搜索了如何执行此操作,但无法获得符合我的情况的结果。
最佳答案
我会执行 AJAX 查询,并让 PHP 脚本返回一个包含数据的 JSON 字符串,您可以在 success 函数中对其进行解码和处理:
<?php
header('Content-type: application/json');
$con = ...; //establish_connection
$result = mysqli_query($con,"SELECT * FROM inventory WHERE item_upc='$_POST[upc]'");
$json = array();
$json['success'] = false;
while($row = mysqli_fetch_array($result))
{
$json['success'] = true;
$json['item_upc'] = $row['item_upc'];
$json['item_description'] = $row['item_description'];
$json['item_price'] = $row['item_price'];
}
echo json_encode($json);
?>
供 AJAX 使用:
$.ajax({
type: "POST",
url: "assets/PagePHP/pos/scan.php",
data: dataString,
success:function(data){
if(data.success==true){
// handle data array
var row=table.insertRow(-1);
var cell1=row.insertCell(0);
var cell2=row.insertCell(1);
var cell3=row.insertCell(2);
var cell4=row.insertCell(3);
var cell5=row.insertCell(4);
var cell6=row.insertCell(5);
cell1.innerHTML =upc;
cell2.innerHTML = data.item_description;
cell3.innerHTML = data.item_price;
cell4.innerHTML ="QTY"; // handle these as you like
cell5.innerHTML ="TOTAL";
cell6.innerHTML ="ACTION";
field.value ='';
}
else {
// nothing returned - error
}
}
});
- 似乎我们中的一些人已经说到了妙语,但您已经明白了需要做什么的要点,哈哈。
关于JavaScript Ajax 到 PHP,然后返回 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19106732/