我只得到我的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;
    });
}

08-04 12:43