[英]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。
可能的解決方案今天可用
<form></form>
try method="post"
。 出於安全原因,請嘗試使用enctype =“”命令。 嘗試使用React Native https://nativebase.io/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.