Php AJAX MySQL更改输入值
我试图根据MySQL查询的结果更改两个文本框的值。 我有以下错误: 未捕获范围错误:超过最大调用堆栈大小 PHP文件:Php AJAX MySQL更改输入值,php,mysql,json,ajax,Php,Mysql,Json,Ajax,我试图根据MySQL查询的结果更改两个文本框的值。 我有以下错误: 未捕获范围错误:超过最大调用堆栈大小 PHP文件: <?php if(!isset($_SESSION)){ session_start(); } require 'config.php'; $stmt2 = mysqli_prepare($link, "SELECT firstname, lastname FROM users WHERE id=?"); if(!$stmt2
<?php
if(!isset($_SESSION)){
session_start();
}
require 'config.php';
$stmt2 = mysqli_prepare($link, "SELECT firstname, lastname FROM users WHERE id=?");
if(!$stmt2) {
die($link->error);
}
$stmt2->bind_param("i", $_SESSION['id']);
if(!$stmt2->execute()) {
die($stmt2->error);
}
$stmt2->bind_result($fname, $lname);
$stmt2->fetch();
$stmt2->close();
$arr = array();
$arr[0] = $fname;
$arr[1] = $lname;
echo json_encode($arr);
$link->close();
?>
如何解决此错误?我想从select查询返回值并更新输入值。谢谢。数据:表单试图将元素转换为url编码的数据,但无效。由于PHP脚本不使用任何POST参数,因此不需要该行
还应使用event.preventDefault阻止默认表单提交
要填充字段,需要使用.val,而不是.html
您没有发布任何值,因此应该使用$.getJSON。将php放在文件getUserDetails.php中,并使用val jQuery方法更新输入值
$('#submit').click(function () {
$.getJSON("getUserDetails.php").done(function(json) {
$("#userfname").val(json[0]);
$("#userlname").val(json[1]);
});
});
同时更改此属性使用.val更改输入值,而不是.html.data:form,这没有意义。PHP脚本不使用任何POST参数,您不需要使用数据:已回答:-简而言之,你可能有相同的JS称为多次为什么这是公认的答案,因为一篇帖子是不需要的?它会工作得很好。GET也会遇到缓存问题,尽管这在这个应用程序中可能不是问题。
$('#submit').click(function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "index.php",
dataType: "json",
success: function (data) {
$("#userfname").val(data[0]);
$("#userlname").val(data[1]);
}
});
});
$('#submit').click(function () {
$.getJSON("getUserDetails.php").done(function(json) {
$("#userfname").val(json[0]);
$("#userlname").val(json[1]);
});
});