亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 JQuery.Ajax() 發送到 PHP

如何將 JQuery.Ajax() 發送到 PHP

PHP
守候你守候我 2023-05-26 15:45:35
我正在嘗試將一些 Ajax 數據發布到我的 PHP 應用程序(使用 XAMPP),但一直無法弄清楚為什么我不能在服務器端(在瀏覽器中)“回顯”該值。我有我的客戶端:localhost:8080/test/test.html,它看起來像這樣:<script>$.ajax({    url: "welcome.php",    type: "POST",    data: {name:"Jay"},    success: function (result) {        console.log("success");        window.location = "welcome.php";    }});                                                         </script>我還在http://localhost:8080/test/welcome.php上有我的 PHP 腳本:<?php    if(isset($_POST["name"]))        echo $_POST["name"];    else        echo "something went wrong"; ?>它似乎$_POST["name"]是未定義的,因為它else被執行了。但它不應該呼應“Jay”嗎?我看過類似的 stackoverflow 問題/答案,但我似乎無法弄清楚出了什么問題。我將 $_POST 更改為 $_REQUEST,將 echo 更改為 print_r,甚至更改為 var_dump。似乎沒有任何效果。我添加了數據類型:'json',放入內容類型,將 json 鍵更改為字符串,等等。當我在執行 test.html 后查看 Chrome 的“開發工具”時,我可以在“網絡”選項卡中看到有帶有name:jay的表單數據。所以我不確定出了什么問題......任何幫助將不勝感激。
查看完整描述

2 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

在您的情況下,您使用 AJAX 的目的是不必要的,因為您將以任何一種方式離開頁面。您實際上在做的是將變量發布到頁面,然后當發生這種情況時,您將轉到該頁面,但操作順序變成如下所示:

  1. POST多變的

  2. 成功

  3. 離開當前頁面

POST變量基本上會在您當前的進程中丟失,因為這就像您通過轉到其他頁面來引起刷新。

使用 AJAX 的巨大優勢之一及其主要目的是您可以刷新頁面上的內容而不會導致重新加載。否則,為什么不簡單地使用一個<form>元素呢?

<form action="welcome.php" method="post">

    <!-- form content -->

</form>

或者解析變量的函數GET?


<script>

function sendNameAsGET(name="Jay") {

    window.location = "welcome.php?name="+name+";

}

</script>

但是,如果您打算在不離開頁面的情況下刷新頁面內容,那么您的處理方式是錯誤的。您需要考慮的是擁有一個可以將內容加載到其中的容器。


例如:


<div id="ajaxDiv"></div>

如果這是你的容器,你可以有一個加載靜態內容的 AJAX 函數(或者直接添加它)。將內容加載到容器的方法是使用.html();帶有我們選擇的選擇器的函數。


例子:


$( document ).ready(function() {

    $.ajax({

        type : "GET",

        url : "some-static-content.php",

        data : { /* data if necessary */ },

        success: function (html) {

            $("#ajaxDiv").html(html);

        }

    })

});

在上面的示例中,我們將名為some-static-content.php的頁面的 HTML 內容加載到具有id ajaxDiv的容器中。


使用 AJAX 的另一個很好的理由是您現在可以將您的內容組織到不同的文件中,這使得擁有一個非常整潔的結構變得容易得多?!芭叮绻倚枰庉嬤@個特定的內容,我只是去/this/directory/and-this-file.php”。無需進入一個文件,滾動瀏覽數千行代碼即可找到您的部分。它變得很像積木或樂高積木,您可以動態互換以滿足您的需要。


并使用welcome.php文件中的 HTML 更改容器的內容,而不刷新頁面:


$.ajax({

    type : "POST",

    url: "welcome.php",

    data: { name : "Jay" },

    success: function (html) {

        //Success handling

        console.log("success");

        $('#ajaxDiv').html(html);

    }

});

現在ajaxDiv容器將從welcome.php加載您的新內容,您將能夠使用您的POST變量。如果您在welcome.phpecho中輸出變量,那么這將是現在顯示在ajaxDiv容器中的內容,而不是some-static-content.php的舊內容。POST


查看完整回答
反對 回復 2023-05-26
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

編輯:添加了第五點。


這里面有幾件事正在發生。讓我們考慮一下推理。


一:如果你只是要去頁面,為什么要發送數據?看起來帖子在發送時變得混亂,然后轉到沒有它價值的頁面。它在想“嘿,現在成功了,讓我轉到沒有價值的頁面?!?最好的解釋方式就像您再次重新提交表單一樣。


二:為什么需要 Ajax?


如果您的歡迎頁面要做一些特定的事情,就像上面的例子一樣,為什么您需要 JS?你不能讓你的表格轉到那個頁面嗎?喜歡


<form action="welcome.php" method="post">


帖子通常與表單相關,與發送數據無關。


三:這會變得令人費解。我會再次調查你為什么這樣做,因為這不是最好的。


我會將結果設為 cookie,然后重定向到頁面,并將變量設置為該 cookie。


$.ajax({

    url: "welcome.php",

    type: "POST",

    data: {name:"Jay"},

    success: function (result) {

        console.dir(result); // then we can find out everything about our result

        document.cookie = "cookiename=result.name"

        window.location = "welcome.php";

    }

});

五:好的,讓我們在 welcome.php 上再看一遍(我只是在做其他事情時想到了這一點)


在我們將值發送到 php 頁面后,我們可以創建一個會話或 php cookie。


JS 可以保持不變


$.ajax({

    url: "welcome.php",

    type: "POST",

    data: {name:"Jay"},

    success: function (result) {

        console.dir(result); 

        // then we can find out everything about our result

        window.location = "welcome.php";

    }

});

歡迎原諒我的 php 有點生疏


<?php


if(isset($_POST["name"])) {

    session_start();

    $_SESSION["sessionName"]=$_POST["name"];

}



if (isset($_SESSION["sessionName"])) {

    echo $_SESSION["sessionName"];

else {

    echo "something went wrong";

}


?>


查看完整回答
反對 回復 2023-05-26
  • 2 回答
  • 0 關注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號