Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将ajax值传递给php?_Javascript_Php - Fatal编程技术网

Javascript 如何将ajax值传递给php?

Javascript 如何将ajax值传递给php?,javascript,php,Javascript,Php,目前,我正在使用php开发web应用程序。我试图将一个值从ajax传递给php,它总是显示未定义的索引。实际上,这是我第一次开发web应用程序,这就是为什么我对它的基本原理不太了解的原因。没有阅读我正在使用的编程语言的文档,我开始练习它,这就是为什么 下面是代码: php: 首先,我们需要一个数组,而不是扩展数据变量的字符串 $(document).ready(function(){ previewReport(); }); function previewReport(){

目前,我正在使用php开发web应用程序。我试图将一个值从ajax传递给php,它总是显示未定义的索引。实际上,这是我第一次开发web应用程序,这就是为什么我对它的基本原理不太了解的原因。没有阅读我正在使用的编程语言的文档,我开始练习它,这就是为什么

下面是代码:

php:


首先,我们需要一个数组,而不是扩展数据变量的字符串

$(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);
?>