[英]How to pass an ajax value to php?
目前,我正在使用php开发Web应用程序。 我试图将值从ajax传递到php,并且始终显示undefined index
。 实际上,这是我第一次开发Web应用程序,这就是为什么,我对其基础知识了解不多。 在没有阅读我正在使用的编程语言的文档的情况下,我开始练习它,这就是为什么。
所以这是代码:
的PHP:
<?php
include_once('pConfig.php');
if (!isset($_POST['cID'])){
$ciCode = $_POST['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);
?>
Javascript:
$(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);
}
});
}
我已经解决了我的问题:我更正了TYPE:
在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);
?>
首先,我们需要一个数组,而不是xdata
变量的字符串。
$(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脚本将通过$_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
设置为$_POST['cID']
因为您正在使用!isset
,这意味着not set
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.