簡體   English   中英

$.post 不發布數據

[英]$.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 結構的附加示例:

一個簡單的例子

更復雜的例子

根據下拉列表 1 中的選擇填充下拉列表 2

暫無
暫無

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

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