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

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

使用外部 PHP post 請求的數據更新 HTML 內容

使用外部 PHP post 請求的數據更新 HTML 內容

PHP
白衣非少年 2024-01-19 15:23:55
我有兩頁。mobile.html 和 video.php。mobile.html 發送ajax帶有單個變量的 post 請求。video.php 應該讀取該變量并將其傳遞給同一頁面中的 JS 函數來更改視頻控件。我嘗試使用這個邏輯:mobile.html 發送 ajax post 請求video.php 在 div 中有 PHP 代碼來讀取請求并獲取變量重新加載video.php并允許同一頁面中的JS代碼從div內部獲取變量將變量傳遞給 video.php 中預期的 JS 函數。在視頻上執行該功能。這是我的代碼,為了簡單起見,我用標簽替換了視頻<p>。mobile.html 代碼工作正常。我的問題出在 video.php 中移動.html $.post("video.php", {gesture: action}, function(response){            $("#result").html('response: '+response);          });視頻.php<html><head>  <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script></head><body>//a div to hold the value of post variable  <div id="dom-target" style="display: none">    <?php    if ( $_SERVER['REQUEST_METHOD'] == 'POST' )    {                if( isset($_POST["gesture"]))      {//put the variable value inside the div to fitch it later        $gesture = $_POST["gesture"];        echo $gesture;      }      else {        echo "none";      }    }    else {      echo json_encode("PHP no post");    }    ?>  </div>//p content should be updated with the value of $gesture  <p id="update">    should be updated with post variable using JS   </p>  <script>//get post variable from the div  var div = document.getElementById("dom-target");  var myData = div.textContent;  $("#update").html(myData);console.log("myData: "+myData);</script></body></html>我已經花了一周的時間試圖解決這個問題,但我似乎無法得到我想要的結果,因為當我重新加載頁面時,我在 ajax 回調函數中找到了我的變量:/我當前得到的輸出是 video.php 中的“PHP no post” 和 video.php 控制臺中的 myData:“PHP no post” ,這沒關系,因為顯然我第一次運行頁面時它不是通過 post 請求。但是,當我單擊在 mobile.html 中觸發發布請求的按鈕時,我得到了該行的輸出,console.log("myData: "+myData);其中包含正確的數據,但在 mobile.html 控制臺中!不在 video.php 控制臺中。意味著代碼在mobile.html中的ajax post請求的回調函數中運行。<p id="update">我未能找到更新當前打開的 video.php 頁面的方法?,F在我什至不確定我是否可以使用 PHP 來做到這一點,因為它僅在服務器上運行,而 JS 僅在 Web 瀏覽器上運行。我的問題是:我可以使用 PHP 執行上述步驟嗎? 如果是,您能幫我找出一種使用從 mobile.html 發送的后調用來動態即時更新 video.php 頁面的方法嗎?或者任何其他可以與 PHP 一起使用的方式?如果不是,你能建議我可以使用哪些其他語言/平臺來做我想做的事情嗎?
查看完整描述

3 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

您正在將gesture值發送到video.php文件,但沒有使用它來獲取其中包含更新值的新段落元素。PHP 應該在服務器上工作,而 JavaScript 應該在前端工作。


保持您的 POST 請求相同。


$.post("video.php", {gesture: action}, function(response) {

  $("#result").html('response: ' + response);

});

但修改服務器返回的響應。該gesture值位于$_POST數組中。從那里您可以使用它來渲染一個新段落并將其回顯或返回到前端。


<?php


// Set default value.

$gesture = 'none';

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

  // Overwrite if there is a gesture value.

  $gesture = $_POST[ "gesture" ];

}


// Echo a new paragraph with the gesture in it.

echo '<p id="update">' . $gesture . '</p>';

exit;

?>


查看完整回答
反對 回復 2024-01-19
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

有很多方法可以做到這一點。對于初學者來說,在開始編碼之前,您必須要有耐心并確保您了解它是如何正常工作的。另外,請注意,互聯網上提供的某些代碼只能在后端運行,并且有一些特定的方法可以使 Websocket 在瀏覽器上運行。就我而言,我在服務器端使用 Node.js,在 Web 瀏覽器的客戶端使用 isomorphic-ws。

查看完整回答
反對 回復 2024-01-19
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

首先請稍微組織一下代碼,以便您可以清楚地看到代碼

  1. 您需要將發布請求放入具有觸發操作的函數中,因為這樣它就永遠不會被調用

  2. 您需要確保在“action”變量中獲取正確的數據(在發布之前在console.log中記錄它)

(如果 $.post 由于某種原因無法工作,請下載 jquery 并在本地使用它,因為它可能不在 slim CDN 中)

暗示:

$( document ).ready(function() {

    console.log(gesture); //check this in the console after refreshing the page

    $.post("video.php", {gesture: action}, function(response){

       $("#result").html('response: '+response);

    });

});


查看完整回答
反對 回復 2024-01-19
  • 3 回答
  • 0 關注
  • 184 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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