簡體   English   中英

AJAX將變量發布到PHP無法正常工作

[英]AJAX post variable to PHP not working

我正在嘗試將jQuery變量轉換為PHP變量。 我查了一下,但是找不到解決方案。 我有以下jQuery:

$('.eventRow').click(function(){

    var eventID = $(this).attr('id');

    $.ajax(
        {
        url: "index.php",
        type: "POST",

        data: {'phpEventId': eventID },
        success: function (result) {
                console.log('success');
        }
    });

當我在console.log中輸入“ eventID”時,它會正確顯示該數字。

我的PHP代碼在index.php中。 這也是.eventRow類所在的位置。

<?php

  $phpEventId = $_POST['phpEventId'];
  echo "<script>console.log('Nummer: ".$phpEventId."')</script>";
  print $phpEventId;

?>

但是什么也沒發生。 console.log僅顯示:“ Number:”代碼是否有問題? 謝謝你的幫助!

編輯:難道是我單擊按鈕之前已經加載了index.php的問題嗎? 由於此php代碼位於index.php中,因此尚未設置$ phpEventId。

在您的Ajax中, type: "POST"適用於1.9.0之前的jQuery。 如果您使用的是最新的jQuery,請使用method: "POST"

如果您使用的是最新的jQuery,但未指定method: "POST" ,則默認為method: "GET"並且您的PHP需要使用$_GET['phpEventId'];來捕獲它$_GET['phpEventId'];

閱讀您的更新后,讓我們嘗試一件事。 更改您的PHP以對Ajax返回有意義的內容:

<?php
  $phpEventId = $_POST['phpEventId'];
  echo $phpEventId;
?>

然后嘗試在您的Ajax中捕獲PHP響應:

$.ajax({
    url: "index.php",
    method: "POST",
    data: {'phpEventId': eventID },
    success: function (result) {
        alert("result: " + result);
    }
});

這只是代碼的一部分,問題出在其他地方。 在這種情況下,您的代碼可以正常工作:

<div class="eventrow" id="1">This</div>
<div class="eventrow" id="2">That</div>
<script>
$('.eventRow').click(function(){

    var eventID = $(this).attr('id');

    $.ajax(
        {
        url: "index-1.php",
        type: "POST",

        data: {'phpEventId': eventID },
        success: function (result) {
                console.log('success: '+eventID);
        }
    });
});
</script>

使用匹配的index-1.php:

<?php

  $phpEventId = $_POST['phpEventId'];
  echo "<script>console.log('Nummer: ".$phpEventId."')</script>";
  print $phpEventId;

?>

不知道為什么在這里為什么將javascript代碼(console.log)打印到ajax響應中...

即使在這里也可以看到錯誤

根據WebZed的回合統計報告,此錯誤在84%的Web開發人員中可見。

在更新框架和代碼時,無法通過JQuery將數據發布到PHP。

可能的解決方案今天可用

  1. 嘗試使用其他發布方法,因為JQUERY和AJAX庫的效率不如調查所示。
  2. 可以使用新框架,這些框架可以更好地使用PHP。
  3. 另一種方法是通過$ _GET方法創建一個發布請求。
  4. 常規HTML5支持<form></form> try method="post" 出於安全原因,請嘗試使用enctype =“”命令。

嘗試使用React Native https://nativebase.io/

暫無
暫無

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

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