[英]$.post not posting data
這是我下面的 page.php 文件的代碼。
<?php session_start(); ?>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="js/jquery.colorbox.js"></script>
<script type="text/javascript" src="js/new-landing.js"></script>
<script type="text/javascript">
var ans1 = "home";
function aa(){
$.post("ajax.php", { "ans": "test" }, function(data){
alert("Posted");
}, "html");
};
</script>
<a href="#" id="q1" onClick="javascript:aa();" >click</a>
這是我想查看我的數據是否已發布的地方。
<?php
session_start();
$te = $_POST['ans'];
$_SESSION['demo'] = $te;
echo "<pre>".print_r($_SESSION,'/n')."</pre>";
?>
當我點擊錨標簽時。 顯示警告框。 但是當我刷新 ajax.php 頁面時。 它顯示一個錯誤..注意:未定義索引:第 3 行 ajax.php 中的 ans
並且 session 的打印也是空的。
Array(
[demo] =>
)
但是當我刷新 ajax.php 頁面時。 它顯示一個錯誤
聽起來您想在發布值時設置會話變量,否則獲取會話變量:
<?php
session_start();
if (isset($_POST['ans'])) {
$te = $_POST['ans'];
$_SESSION['demo'] = $te;
}
echo "<pre>".print_r($_SESSION,'/n')."</pre>";
?>
$.post
和$.get
只是更結構化的$.ajax()
簡寫版本,所以我更喜歡使用后者。 額外的結構讓我保持直立。
由於您無論如何都在使用 jQuery,因此我會像這樣重新構建您的代碼:
$('#q1').click(function() {
var test = "Hello there";
$.ajax(function() {
type: "POST",
url: 'ajax.php',
data: 'ans=' +test+ '&anothervarname=' + anothervarvalue,
success: function(recd_data) {
alert('Rec'd from PHP: ' + recd_data );
}
});
});
請注意, data:
行僅用於示例目的,與您的代碼不匹配——只是向您展示如何將變量傳遞給 PHP 端。
當然,上述內容包括從您的錨標記 HTML 中刪除內聯 javascript——這絕不是一個好主意,因此:
<a href="#" id="q1" >click</a>
此外,在 PHP 方面,您可以通過在頂部添加測試來驗證事情是否正常。 與示例 AJAX 代碼中的data:
行匹配,它看起來像這樣:
ajax.php
<?php
$a = $_POST['ans'];
$b = $_POST['anothervarname'];
$response = '<h1>Received at PHP side:</h1>';
$response .= 'Variable [ans] has value: ' . $a . '<br>';
$response .= 'Variable [anothervarname] has value: ' . $b . '<br>';
echo $response;
重要提示:請注意使用echo
而不是return
將值發送回 AJAX 腳本。
另請注意,您必須在 AJAX success:
function ONLY 中處理從 PHP 返回的內容。 如果您需要在success:
函數之外訪問該數據,那么您可以將數據粘貼到隱藏的<input type="hidden" id="myHiddenInput">
元素中,如下所示:
success: function(recd_data) {
$('#myHiddenInput').html(recd_data);
}
下面是一些簡單的 AJAX 結構的附加示例:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.