簡體   English   中英

PHP無法從Ajax Jquery捕獲數據

[英]PHP not catching data from Ajax Jquery

我試圖通過在服務器端使用Ajax和PHP傳遞數據。 php文件未捕獲通過Ajax發送的數據。

該代碼使用jquery獲取值,並生成一個長字符串,稱為data

jQuery代碼如下所示:

var data = 'ppemail=' + $('#email').val()
    + '&monto_enviar=' + montoEnviarDisp
    + '&monto_pub=' + montoPubDisp
    + '&tasa=' + tasaDisp
    + '&monto_recibir=' + monto_recibirDisp
    + '&banco=' + $('#banco').val()
    + '&receptor=' + $('#receptor').val()
    + '&cuenta=' + $('#cuenta').val()
    + '&cedula=' + $('#cedula').val();

$.ajax({
    type: "POST",
    url: 'crear_oferta.php',
    data: ({data}),
    success: function (response) {
        alert(response);
    }
}); 

php文件是這樣的:

<?php
session_start();
require_once 'dbconfig3.php';

var_dump($_POST);

try {
    $userID = $_SESSION['userSession'];

    $ppemail = $_POST['ppemail'];
    $monto_e = $_POST['monto_enviar'];
    $monto_p = $_POST['monto_pub'];
    $tasa = $_POST['tasa'];
    $monto_rec = $_POST['monto_recibir'];

    $banco = ($_POST['banco']);
    $receptor = ($_POST['receptor']);
    $cuenta = ($_POST['cuenta']);
    $cedula = ($_POST['cedula']);

    /// luego de confirmar hacer el try e insertar

    //if(isset($_POST['btnferta'])){

    //$password = md5($upass);
    $bid_date = date('Y-m-d H:i:s');

    $stmt = $db_con->prepare("INSERT INTO ofertas(uid,email_pp,nombre_receptor,banco_receptor,cuenta_receptor,cedula_receptor,monto_enviar,monto_publicar,tasa,monto_recibir,fecha) 
                            VALUES(:userid, :emailpp, :nombre, :banco,  :cuenta, :cedula, :monto_e, :monto_p, :tasa, :monto_r, :fecha)");

    $stmt->bindParam(":userid", $userID);
    $stmt->bindParam(":emailpp", $ppemail);
    $stmt->bindParam(":nombre", $receptor);
    $stmt->bindParam(":banco", $banco);
    $stmt->bindParam(":cuenta", $cuenta);
    $stmt->bindParam(":cedula", $cedula);
    $stmt->bindParam(":monto_e", $monto_e);
    $stmt->bindParam(":monto_p", $monto_p);
    $stmt->bindParam(":tasa", $tasa);
    $stmt->bindParam(":monto_r", $monto_rec);
    $stmt->bindParam(":fecha", $bid_date);

    $stmt->execute();

    echo 'ok';


} catch (PDOException $ex) {
    echo $ex->getMessage();
}

?>

為什么$ _POST沒有得到任何數據? 謝謝您的幫助!

似乎您正在嘗試將字符串作為對象屬性傳遞。 更改$.ajax選項:

$.ajax({
  type: "POST",
  url: 'crear_oferta.php',
  data: data,
  success: function(response) {
    alert(response);
  }
}); 

您應該將data設置為對象。 這樣可以確保對URL參數進行正確編碼。 否則,您需要在可能包含特殊字符的任何參數上調用encodeURIComponent

var data = {
    'ppemail': $('#email').val(),
    'monto_enviar': montoEnviarDisp,
    'monto_pub': montoPubDisp,
    'tasa': tasaDisp,
    'monto_recibir': monto_recibirDisp,
    'banco': $('#banco').val(),
    'receptor': $('#receptor').val(),
    'cuenta': $('#cuenta').val(),
    'cedula': $('#cedula').val()
};

然后,在調用$.ajax時,不應將其包裝在另一個對象中:

$.ajax({
    type: "POST",
    url: 'crear_oferta.php',
    data: data,
    success: function(response) {
        alert(response);
    }
}); 

暫無
暫無

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

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