我只得到我的foreach loop
的最后一个值,我给了它所有的唯一ID,但我仍然得到了最后一个值
<?php
if (!empty($array)){
foreach($array['users'] as $id){
echo '<a href="#" id="btnClick" onClick="clickEvent();">
<div class="choices">
<dl>
<dt id="id'.$id['userID'].'">'.$id['userID'] .'</dt>
<dd id="name">'.$id['userName'].'</dd>
<dd>'.$key.'</dd>
</dl>
</div>
</a>';
}
}
?>
这是我用来获取ID的
javascript
,因此我可以将其直接放在url上。function clickEvent(){
var foo = "<?php echo $id['userID'] ?>";
var json = 'http://batz.web/Sandbox/details.php?userID=' + foo1;
console.log(json);
$.getJSON(json, function (results){
document.getElementById("title").innerHTML = results.users[0].userID;
document.getElementById("body").innerText = results.users[0].userAddress;
});
}
最佳答案
循环结束后,$id
的值保留循环的最后一个值。因此,最后一个值将输出到
var foo = "<?php echo $id['userID'] ?>";
解决方案之一是将
$id['userID']
作为参数传递给clickEvent
:echo '<a href="#" id="btnClick" onClick="clickEvent(' . $id['userID'] . ');">
并将
clickEvent
定义为:// now foo is an argument
function clickEvent(foo){
var json = 'http://batz.web/Sandbox/details.php?userID=' + foo; // use foo, not foo1
console.log(json);
$.getJSON(json, function (results){
document.getElementById("title").innerHTML = results.users[0].userID;
document.getElementById("body").innerText = results.users[0].userAddress;
});
}