[英]PHP unable to receive Javascript variable via Ajax
已解決:我沒有意識到ajax僅在該實例中發送數據,並且重定向創建了一個新實例。
我查看了所有stackoverflow結果以尋求幫助,但沒有一個起作用。
我正在嘗試通過POST向php發送變量mmm,並且由於某種原因php無法檢索它。 我不知道我在做什么錯。
這是javascript代碼(在checks.js文件中):
$.ajax({
type: "POST",
url: 'https://www.example.com/panel/app.php',
data: {mmm: 145},
success: function(data) {
alert("success");
}
});
document.getElementById("adminLoginForm").submit();
這是文件(app.php)中的php代碼:
<?php
$output = (isset($_POST['mmm'])) ? $_POST['mmm'] : 0;
echo "<script>console.log( 'Debug Objects: " . $output . "' );</script>";
?>
Google控制台日志打印:“調試對象:0”
文件目錄如下:
主資料夾
基礎
注冊
登錄
基礎
JS
面板
Ajax意味着您沒有通過瀏覽器操作提交表單,這會刷新頁面。 嘗試擺脫document.getElementById("adminLoginForm").submit();
這行,然后運行代碼document.getElementById("adminLoginForm").submit();
。 然后,您可能會獲得警報成功。
$.ajax({
type: "POST",
url: 'https://www.example.com/panel/app.php',
data: {mmm: 145},
success: function(data){
alert("success");
console.log( 'Debug Objects: ' + data )
}
});
並將PHP腳本更改為只回顯$ output。
由於您將表單發布到同一php終結點,因此您所需要的只是表單中的隱藏輸入,並且可以擺脫ajax
在提交事件處理程序中,您可以在瀏覽器發布表單之前從腳本中的任何源更新隱藏輸入的值。
<input type="hidden" name="mmm" id="input_mmm">
jQuery提交事件偵聽器:
$('#adminLoginForm').submit(function(){
$('#input_mmm').val( new_value);
});
在這里,通常使用提交按鈕提交表單。 這將觸發事件。
您沒有提到哪個頁面包含您的Ajax表單提交代碼。 讓我們假設您使用的是同一頁面,即app.php 。 現在您的頁面將如下所示:
<?php
$output = (isset($_POST['mmm'])) ? $_POST['mmm'] : 0;
if($output !== 0) {
echo "SUCCESS: Thanks for submitting value=". $output." Something:".$_POST['something'] ;
die;
}
?>
<html>
<head>
<title>Test</title>
<script src="jquery.min.js"></script>
<script>
function submitData() {
var somethingVal = $("#something").val();
$.ajax({
type: "POST",
url: 'http://localhost/app.php',
data: {mmm: 145, something: somethingVal},
success: function(data){
$("#message").html(data);
}
});
//document.getElementById("adminLoginForm").submit();
//Stop form submission
return false;
}
</script>
</head>
<body>
<div id="message"></div>
<form method="post" id="adminLoginForm" onsubmit="return submitData()">
<input type="text" value="Something" name="something" id="something"/>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
盡管這不是實現目標的100%標准方法,但它只會為您提供參考。 如果您將提供您想要實現的更具體的目標,我將提供進一步的幫助。 希望對您有所幫助!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.