繁体   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