簡體   English   中英

jQuery POST to PHP顯示在瀏覽器中,但未顯示PHP文件

[英]jQuery POST to PHP appears in browser, but not the PHP file

我一直在努力解決這個問題,在這里我必須搜索了五十多個其他問題,但無濟於事。 我正在嘗試使用PHP,MariaDB,jQuery和其他Web開發技術對網站進行編碼,但是在嘗試將變量從客戶端(使用jQuery)發布到服務器端(PHP)時遇到了問題。 我創建了一個非常簡單的文件,只是為了解決我遇到的問題:

<!DOCTYPE html>

<html>
<head>
        <meta http-equiv="Content-Type" content="text/html" charset="utf-8" /> 
        <script type="text/javascript" src="jquery.js"></script> 
</head>
<script type="text/javascript"> 
$(document).ready(function()
{
    $.ajax({
      type: "POST",
      url: "index.php",
      data: {'name': "name1"},
    });
});
</script>
<body>
<?php 
    if(isset($_POST["name"])){
        $i=$_POST["name"];
        echo "num: ".$i;
    }
    else{
        echo "No information supplied";
    }
?>
</body>
</html>

我刷新頁面,並不斷收到失敗消息“未提供信息”。 我知道POST正在發送到瀏覽器,因為我可以在Firebug中看到它,並且其狀態代碼為200 OK,所以我知道我必須做正確的事。 我的PHP語法搞砸了嗎? 我知道,當我從常規HTML中嵌入的表單中提取數據時,這將很好地工作。

感謝您的協助,如果這是一個非常簡單的問題,我謹向您致歉。 我正在嘗試學習盡可能多的Web開發。 我覺得我已經嘗試了所有方法,直到使用更長的.ajax發送POST變量的方式,而不是使用.post()了。

這是您的答案,您將進行測試以查看是否存在ajax請求,如果需要,請對其進行處理,如果不吐出您的原始頁面。 至於ajax調用,我們添加了一個成功回調,該回調將隨后使用您返回的內容更新您的body標簽。 數據

<?php 
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
        if(isset($_POST["name"])){
            $i=$_POST["name"];
            echo "num: ".$i;
        }
        else{
            echo "No information supplied";
        }
        die;
    }
?>
<!DOCTYPE html>

<html>
<head>
        <meta http-equiv="Content-Type" content="text/html" charset="utf-8" /> 
        <script type="text/javascript" src="jquery.js"></script> 
</head>
<script type="text/javascript"> 
$(document).ready(function()
{
    $.ajax({
      type: "POST",
      url: "index.php",
      data: {'name': "name1"},
      success: function(data){
          $('body').html(data);
      }
    });
});
</script>
<body>
this is the original body content
</body>
</html>

您的PHP代碼會觸發ajax請求之前運行,因為服務器會先解釋並運行PHP,然后才能在瀏覽器中查看生成的HTML

您需要在ajax請求對象中添加一個success回調,該回調將獲取ajax請求的結果並對其進行一些有用的處理,例如將其放入<div>元素中。 下面的示例只是顯示它

$.ajax({
  type: "POST",
  url: "index.php",
  data: {'name': "name1"},
  success: function(serverReponse){ alert(serverResponse) }
});

暫無
暫無

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

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