如何在第三页上获取php ID?

时间:2016-08-17 10:55:13

标签: php jquery ajax

修改

由于我之前的解释不清楚,试图再次解释它。

我想要做的事情在理论上很简单,但我不能让它发挥作用。 我有六页:

  1. searchnanny.js
  2. superhoidja.js
  3. nannyInfo.php
  4. searchNanny.php
  5. superhoidja.php
  6. 的search.php
  7. 流程应该是这样的:

    1. 我在searchNanny.php
    2. 上查询数据库中的用户信息
    3. on searchNanny.js我使用$.getJSON("PHP/scripts/searchNanny.php", function (data) {});将所有用户的列表附加到第search.php页上的div
    4. 用户点击页面href="superhoidja.php?superhoidja_id='+data.user_id+'"上生成的search.php,将其带到名为superhoidja.php的网页,并将data-id发送到名为{{1}的网页重定向(不知道这是否可行)
    5. 在页面superhoidja.js上,我添加了包含以下superhoidja.php
    6. 的js文件superhoidja.js

      现在的问题是我从未在$.getJSON("PHP/scripts/nannyInfo.php", function (data) { console.log(data);});上获得data-id,因为我猜是重定向。如果我不重定向,我会获得所有信息。

      我尝试在superhoidja.php文件中使用nannyInfo.php,它运行正常。然后将ID传递给$_GET,但仍然无效 - 无法获取ID(请参阅下面的示例)。

      我想将nannyInfo.php传递给data-id上的nannyInfo.php,因为我在searchNanny.js文件中没有任何JS我的问题:如何我可以将superhoidja.phpdata-id传递到searchNanny.js并通过nannyInfo.php获取superhoidja.php上的所有数据吗?

      我希望这种解释更清晰,更有意义。如果有人知道更简单的工作流程,那么请告诉我。提前谢谢。

      列表第2点示例如下:

      superhoidja.js

      列表第3点示例

      试图像这样发送ID:

          var profileCard = 
              '                   <div class="col-md-3">'+
              '                        <div class="card hovercard">'+
              '                            <div class="cardheader">'+
              '                            </div>'+
              '                            <div class="avatar">'+
              '                                '+profilePictureString+''+
              '                            </div>'+
              '                            <div class="info">'+
              '                                <div class="title">'+
              '                                    <p>'+data.userFirstName+'  '+userLastNameLetter+'.</p>'+
              '                                </div>'+
              '                                <div class="desc">'+data.description+'</div>'+
              '                            </div>'+
              '                            <div class="bottom">'+
              '                                <a class="btn btn-primary userProfile" href="superhoidja.php?superhoidja_id='+data.user_id+'"  data-id="'+data.user_id+'">'+
              '                                    <i class="fa fa-search" aria-hidden="true"></i> Vaata'+
              '                                </a>'+
              '                            </div>'+
              '                        </div>'+
              '                    </div>';
          $("#nannySearchListing").append(profileCard);
      

      Superhoidja.php页面示例我尝试了什么

      $(document).on("click", ".userProfile", function (e) {
              var superhoidja_id= $(this).data('id');
              console.log(superhoidja_id);
      
              $.ajax({
                  type: "POST",
                  url: 'PHP/scripts/nannyInfo.php',
                  data: "superhoidja_id=" + superhoidja_id,
                  success: function (data) {
                      console.log(data);
                  },
                  error: function (jqXHR, textStatus, errorThrown, data) {
                      console.log(jqXHR, textStatus, errorThrown, data);
                  }
              });
          });
      

      nannyInfo.php

      //get the id from the page
      $superhoidja_id = $_GET['superhoidja_id'];
      
       $(document).ready(function(){
              var superhoidja_id = <?php echo $superhoidja_id ?>;
              console.log(superhoidja_id);
      
              $.ajax({
                  url: "PHP/scripts/nannyInfo.php",
                  type: "POST",
                  data: superhoidja_id
              });
          });
      

4 个答案:

答案 0 :(得分:0)

您没有在第二个请求中发送参数。这应该是什么样的:

$.ajax({
   url: 'PHP/scripts/nannyInfo.php',
   data: {supernanny_id: 'put_desired_id_here'},
   type: 'POST',
   dataType: 'json',
   success: function(json){

      //do your stuff here
   }
})

编辑: 由于您在网址中将自己的ID作为参数,因此可以从那里获取:

假设您有userProfile页面,其中包含以下网址:

enter image description here

现在你从那里得到你的supernanny_id

var params = location.search; //you get everything after ?
var supernanny_id = (params.length) ? params.split('?supernanny_id=')[1] : '-' //123454

答案 1 :(得分:0)

如果使用POST方法,则需要以不同方式设置数据中的变量。

try {
    getResourceA();
} catch (HystrixRuntimeException e) {
    if (e.getCause() instanceof MyException) {
        handleException((MyException)e.getCause());
    }
}

因为您的页面正在重定向(不确定原因) - 您需要将$ _POST更改为$ _GET / $ _REQUEST,因为重定向将信息作为URL中的名称值密钥对传递。

答案 2 :(得分:0)

如何在超文本上实现“onclick”事件?

类似的东西:

<a href="/path/to/page.html" onclick="ajaxfunction(par1,par2,...)"> click here </a>

答案 3 :(得分:0)

所以我最终如何做到这一点,我希望这对某些人也有帮助。

我使用localStorage,因为这似乎是最合理的使用atm。

在页面searchNanny.js上,我将其包含在点击中:

$(document).on("click", ".userProfile", function (e) {
    var user_id= $(this).data('id');
    var superhoidja_id =  parseInt(user_id);
    // Put the object into storage
    localStorage.setItem('superhoidja_id', superhoidja_id);

});

将id写入localStorage。

// Retrieve the object from storage
var superhoidja_id = localStorage.getItem('superhoidja_id');

var superhoidja_id_calendar = { superhoidja_id : superhoidja_id }

我可以随心所欲地使用它。也许它不是最好的解决方案,但它现在有效。 干杯