由于我之前的解释不清楚,试图再次解释它。
我想要做的事情在理论上很简单,但我不能让它发挥作用。 我有六页:
流程应该是这样的:
searchNanny.php
searchNanny.js
我使用$.getJSON("PHP/scripts/searchNanny.php", function (data) {});
将所有用户的列表附加到第search.php
页上的div href="superhoidja.php?superhoidja_id='+data.user_id+'"
上生成的search.php
,将其带到名为superhoidja.php
的网页,并将data-id
发送到名为{{1}的网页重定向(不知道这是否可行)superhoidja.js
上,我添加了包含以下superhoidja.php
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.php
从data-id
传递到searchNanny.js
并通过nannyInfo.php
获取superhoidja.php
上的所有数据吗?
我希望这种解释更清晰,更有意义。如果有人知道更简单的工作流程,那么请告诉我。提前谢谢。
superhoidja.js
试图像这样发送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);
$(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);
}
});
});
//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
});
});
答案 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页面,其中包含以下网址:
现在你从那里得到你的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 }
我可以随心所欲地使用它。也许它不是最好的解决方案,但它现在有效。 干杯