我正在尝试将具有文本作为数据类型的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
返回数据附加我的表格。
答案 0 :(得分:0)
我不确定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代码 - 而不是尝试从insert语句返回数据,也许你可以将自己的数据数据发送回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 ) );