繁体   English   中英

如何将ajax值传递给php?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM