簡體   English   中英

如何從PHP中的URL獲取參數,但如何在jQuery加載頁面后獲取參數?

[英]How to get parameter from URL in PHP but after load page by jQuery?

我需要的PHP但經過負載“一步02.php”得到(日期)參數形式的URL通過.load jQuery的。

例如:

http://localhost:8000/selectRoom?hotelID=100&date=2016-11-08&night=5

我通過php從URL獲得的2016-11-08值為$_GET['date']但是在我使用jQuery加載step-02.php ,此代碼$_GET['date']不起作用。

$(function () {
   $('#Step-01').hide();
   $('#Step-02').show();
   $('#Step-02').load('step_02.php');
})

HTML在step-02.php

<div class="alert alert-success">
   // This line gives an error and not work!
   <?php echo $_GET['date']; ?> 
</div>

http是無狀態的,因此除非您將日期傳回ajax請求或將其保存到會話中,否則服務器將無法記住您之前所說的內容。

把它放在step1.php的某個地方

<input type="hidden" id="date-input" value="<?php echo $_GET['date']?>" />

然后執行以下操作:

$(function () {
  var date = $('#date-input').val();
  $('#Step-01').hide();
  $('#Step-02').show();
  $('#Step-02').load('step_02.php?date='+date);
})

如果我起初很好理解,請使用以下參數調用此url: http://localhost:8000/selectRoom?hotelID=100&date=2016-11-08&night=5 ,這就是為什么在您的PHP文件中可以獲取參數的原因, $_GET['hotelID']$_GET['date']$_GET['night']

當您調用step_02.php時

該url不會更改為新的url,而是保持不變: http://localhost:8000/selectRoom?hotelID=100&date=2016-11-08&night=5 ,這就是問題所在! PHP文件step_02.php, 沒有得到從服務器請求的客戶端的任何參數,所以它不承認任何參數, 盡管它們在URL中。

解決方案:

答:您可以通過以下方式獲取URL: $_SERVER['HTTP_REFERER'] ,它將按原樣提供所有URL,並通過explode("?", $_SERVER['HTTP_REFERER'])來獲取url。獲取網址中包含參數的部分,然后可以再次使用explode。

B.您可以在執行ajax調用時將所需的參數傳遞給服務器,並使用$_GET['parameter' ]來獲取它們,如下所示:

data = {'hotelID':100,'date':2016-11-08,'night':5};
        $.ajax({
            cache: false,
            url : url,
            type: "GET",
            data : data,
            beforeSend: function( xhr ) {
                //load your spinner img
            },
            success : function(data, textStatus, jqXHR){
                //get response from server
            },
            error : function(xhr, ajaxOptions, thrownError){
                alert(thrownError);
            }
        });

或者如果需要使用load():

$('#Step-02').load('path', 'key=value');

希望有幫助,祝你好運。

您的問題尚不清楚,但我認為您想在加載后獲取日期值。

使用callback()

$('#Step-02').load('step_02.php', function(response, status, xhr) {
  alert( "Load was performed." );
  console.log(response);
});

暫無
暫無

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

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