我正在尝试将具有文本作为数据类型的AJAX脚本更改为JSON。
datatype:"text"
运行良好,所以我尝试将其更改为以下脚本:
在 PHP 代码中:
header("Content-type: application/json");
$emp_name = $_POST['d1'];
$pos = $_POST['d2'];
$sal = $_POST['d3'];
$insert = "INSERT into emp(name, pos, sal) VALUES (:emp_name, :pos, :sal)";
$insertStmt = $conn->prepare($insert);
$insertStmt->bindValue(":emp_name", $emp_name);
$insertStmt->bindValue(":pos", $pos);
$insertStmt->bindValue(":sal", $sal);
$insertStmt->execute();
//echo "success";
while($row = $insertStmt->fetch())
{
$data[]=$row;
}
echo json_encode($data);
以下是我在 AJAX 脚本中更改的内容:
$("#btnClicked").click(function()
{
var emp = $("#name").val();
var pos = $("#pos").val();
var sal = $("#sal").val();
$.ajax
({
url: 'insert.php',
type: 'POST',
data: {d1: emp, d2: pos, d3: sal},
dataType: "JSON",
function(data)
{
console.log(data);
}
});
});
我需要先在控制台中查看数据。
数据将添加到服务器,刷新时将显示在我的 html 表中,但它们不会出现在控制台中。
控制台中没有显示错误。
那么如何查看它们,以及如何用返回的数据附加json
我的表。
我不确定 jQuery,但我认为该函数应该更像这样,带有success
处理程序
$("#btnClicked").click(function(){
var emp = $("#name").val();
var pos = $("#pos").val();
var sal = $("#sal").val();
$.ajax({
url: 'insert.php',
type: 'POST',
data: {d1: emp, d2: pos, d3: sal},
dataType: "JSON",
success:function(data){
console.log(data);
},
error:function(err){alert(err)}
});
});
直到 Barmar 指出才注意到 php 代码 - 与其尝试从插入语句返回数据,也许您可以将自己的数据数组发送回 js 函数。
header("Content-type: application/json");
$emp_name = $_POST['d1'];
$pos = $_POST['d2'];
$sal = $_POST['d3'];
$insert = "INSERT into emp(name, pos, sal) VALUES (:emp_name, :pos, :sal)";
$insertStmt = $conn->prepare($insert);
$insertStmt->bindValue(":emp_name", $emp_name);
$insertStmt->bindValue(":pos", $pos);
$insertStmt->bindValue(":sal", $sal);
$insertStmt->execute();
echo json_encode( array('name'=>$emp_name, 'position'=>$pos, 'salary'=>$sal ) );