Javascript 如何将ajax值传递给php?
目前,我正在使用php开发web应用程序。我试图将一个值从ajax传递给php,它总是显示未定义的索引。实际上,这是我第一次开发web应用程序,这就是为什么我对它的基本原理不太了解的原因。没有阅读我正在使用的编程语言的文档,我开始练习它,这就是为什么 下面是代码: php:Javascript 如何将ajax值传递给php?,javascript,php,Javascript,Php,目前,我正在使用php开发web应用程序。我试图将一个值从ajax传递给php,它总是显示未定义的索引。实际上,这是我第一次开发web应用程序,这就是为什么我对它的基本原理不太了解的原因。没有阅读我正在使用的编程语言的文档,我开始练习它,这就是为什么 下面是代码: php: 首先,我们需要一个数组,而不是扩展数据变量的字符串 $(document).ready(function(){ previewReport(); }); function previewReport(){
首先,我们需要一个数组,而不是扩展数据变量的字符串
$(document).ready(function(){
previewReport();
});
function previewReport(){
var cID = window.localStorage.getItem('ciCode');
var xdata = {'cID':cID};
$.ajax({
type: 'POST',
url: '../back_php_Code/pInspectRecords.php',
dataType: 'text',
data: xdata,
contentType: 'application/json; charset=utf-8',
success: function (response) {
console.log(JSON.stringify(response));
},
error: function (error) {
console.log(error);
}
});
}
这意味着AJAX脚本将通过$\u POST[cID]向PHP脚本发送数据
要使PHP代码正常工作,您需要更改以下内容
if (!isset($_POST['cID'])){
$ciCode = $_POST['cID'];
}
对此
$ciCode = "";
/* Check if cID is set */
if (isset($_POST['cID'])){
$ciCode = $_POST['cID'];
}
这样做可以防止脚本中出现空值和意外错误。您的原始代码阻止您在使用时将$ciCode设置为$\u POST['cID']!isset的意思是未设置。我已经解决了这个问题:我已经纠正了ajax中的类型:以及php代码中的isset
$(document).ready(function(){
previewReport();
});
function previewReport(){
var cID = window.localStorage.getItem('ciCode');
alert(cID);
$.ajax({
type: 'GET',
url: '../back_php_Code/pInspectRecords.php',
dataType: 'json',
data: {'cID': cID},
contentType: 'application/json; charset=utf-8',
success: function (response) {
//console.log(JSON.stringify(response));
},
error: function (error) {
console.log(error);
}
});
}
<?php
include_once('pConfig.php');
if (!isset($ciCODe)){
$ciCode = $_GET['cID'];
}
$strSQL = "SELECT csi_personal_info.ci_ID, csi_personal_info.Fname, csi_personal_info.Mname,
csi_personal_info.Lname, csi_personal_info.Age, csi_personal_info.Birthdate, csi_personal_info.Status,
csi_personal_info.Religion, csi_contact_info.home_number, csi_contact_info.personal_ph_number, csi_contact_info.email,
csi_contact_info.pro_address, csi_contact_info.pre_address, ci_account_info.ciCODe, ci_account_info.LoanType,
ci_account_info.Bank, ci_account_info.Amount, ci_account_info.Status FROM csi_personal_info INNER JOIN csi_contact_info ON csi_personal_info.ci_ID = csi_contact_info.ci_ID
INNER JOIN ci_account_info ON csi_contact_info.ci_ID = ci_account_info.ci_ID WHERE ci_account_info.ciCODe = '$ciCode'";
$result = mysqli_query($db, $strSQL);
if (!$result) {
printf("Error: %s\n", mysqli_error($db));
exit();
}
$json = mysqli_fetch_all($result, MYSQLI_ASSOC);
echo json_encode($json);
?>
输出您的帖子并查看您发送的内容。看起来您正在尝试发送JSON字符串。。否则我认为它应该是var-xdata={'cID':cID};您在本地存储器中的何处设置ciCode?从您的代码来看,您可能试图使用尚未设置的存储项。还有,未定义的索引,它指的是哪一行?应该在控制台的右侧显示“未定义索引”部分。@user3783243这是正确的,而且PHP端也需要修复。检查我的答案。另外,if应该扩展到整个块,并且应该使用参数化查询。这可能是真的,但我忽略了它,因为我不确定sure OP的脚本到底在做什么@用户3783243
$ciCode = "";
/* Check if cID is set */
if (isset($_POST['cID'])){
$ciCode = $_POST['cID'];
}
$(document).ready(function(){
previewReport();
});
function previewReport(){
var cID = window.localStorage.getItem('ciCode');
alert(cID);
$.ajax({
type: 'GET',
url: '../back_php_Code/pInspectRecords.php',
dataType: 'json',
data: {'cID': cID},
contentType: 'application/json; charset=utf-8',
success: function (response) {
//console.log(JSON.stringify(response));
},
error: function (error) {
console.log(error);
}
});
}
<?php
include_once('pConfig.php');
if (!isset($ciCODe)){
$ciCode = $_GET['cID'];
}
$strSQL = "SELECT csi_personal_info.ci_ID, csi_personal_info.Fname, csi_personal_info.Mname,
csi_personal_info.Lname, csi_personal_info.Age, csi_personal_info.Birthdate, csi_personal_info.Status,
csi_personal_info.Religion, csi_contact_info.home_number, csi_contact_info.personal_ph_number, csi_contact_info.email,
csi_contact_info.pro_address, csi_contact_info.pre_address, ci_account_info.ciCODe, ci_account_info.LoanType,
ci_account_info.Bank, ci_account_info.Amount, ci_account_info.Status FROM csi_personal_info INNER JOIN csi_contact_info ON csi_personal_info.ci_ID = csi_contact_info.ci_ID
INNER JOIN ci_account_info ON csi_contact_info.ci_ID = ci_account_info.ci_ID WHERE ci_account_info.ciCODe = '$ciCode'";
$result = mysqli_query($db, $strSQL);
if (!$result) {
printf("Error: %s\n", mysqli_error($db));
exit();
}
$json = mysqli_fetch_all($result, MYSQLI_ASSOC);
echo json_encode($json);
?>