簡體   English   中英

如何檢索通過 AJAX 后調用發送的 php 中的數據?

[英]How to retrieve data in php sent over AJAX post call?

基本上我試圖使用ajax post調用將數據發送到php。 我得到了響應成功,我可以在我的控制台中看到我在標題中的網絡表單數據上發送的數據。 但是在 PHP 頁面上我沒有得到數據。

var OrderNumber = "60019";
var cars = ["Saab", "Volvo", "BMW"];

 $.ajax({
        type : "POST",
        url: "page.php",
        data: {OrderNumber,cars},
        success: function(response){
            console.log(response);
        },

    });
});

php 文件來獲取數據

<?php
 $OrderNumber="";
 $cars="";
if (isset($_REQUEST["OrderNumber"]) && $_REQUEST["OrderNumber"] != "") {
    $OrderNumber = strtoupper(trim($_REQUEST["OrderNumber"]));
} else if (isset($_POST["OrderNumber"]) && $_POST["OrderNumber"] != "") {
    $OrderNumber = strtoupper(trim($_POST["OrderNumber"]));
}

if (isset($_REQUEST["cars"]) && $_REQUEST["cars"] != "") {
     $cars = $_REQUEST["cars"];
 } else if (isset($_POST["cars"]) && $_POST["cars"] != "") {
     $cars = $_POST["cars"];
 }

echo($OrderNumber);
var_dump(cars);
var_dump($_REQUEST);
?>

在 PHP 方面,我得到的一切都為空。 這將真正幫助我理解和學習這個 ajax 到 php 調用的概念。 我試圖在互聯網上學習很多教程,但仍然缺少一些東西。 盡管我正在努力弄清楚並將繼續發布。 我哪里出錯了有什么建議或建議嗎?

我不知道jQuery將如何處理將數組傳遞到data參數中,無論它是編碼為 JSON 還是嘗試“按原樣”發送,因此如果{'OrderNumber':OrderNumber,'cars':cars}不起作用,因為cars是一個數組,您可能需要像這樣對cars進行編碼:

{'OrderNumber':OrderNumber,'cars':JSON.stringify( cars )}

使用 PHP,您可能會考慮:

<?php

    if($_SERVER['REQUEST_METHOD']=='POST'){

        $errors=array();
        $args=array(
            'OrderNumber'   =>  FILTER_SANITIZE_STRING,
            'cars'          =>  FILTER_SANITIZE_NUMBER_INT
        );

        foreach( array_keys( $args ) as $field ){
            if( !isset( $_POST[ $field ] ) ) $errors[]=sprintf( 'The field "%s" is not set', $field );
        }

        foreach( $_POST as $field => $value ){
            if( !in_array( $field, array_keys( $args ) ) )$errors[]=sprintf( 'Unknown field "%s"', $field );
        }

        if( empty( $errors ) ){
            $_POST=filter_input_array( INPUT_POST, $args );
            extract( $_POST );
            /* there will now be a cars and a OrderNumber variable to play with */

            $OrderNumber=strtoupper( $OrderNumber  );

        } else {
            exit( json_encode( $errors ) );
        }
    }

?>

POST 數組中的任何未指定字段都將被刪除,任何缺少的字段都會導致錯誤 - 使用extract將生成的 POST 數組轉換為變量(由於上述原因應該沒問題)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM