从每个输出中分别选择多个选择的最佳方法


Best way to select multiple selections seperatly from foreach output

我有这个foreach循环:

foreach ($userItems_get as $item => $value) {
    if ($value['prefab'] == 'wearable') {       
        echo $value['name'] . "</br>";
        echo "<img src='"{$value['image_inventory']}.png'" width='"90'" height='"60'">" . "</br>";
        if (!isset($value['item_rarity'])) {
            $rarity = "common";
        } else {
            $rarity = $value['item_rarity'];
        }
        echo $rarity . "</br>";
        foreach ($userItemsLoad as $key => $values) {   
            if ($item == $values['defindex']) {
                echo $values['id'] . "</br></br>";
                break;
            }
        }
    }       
}

以这种格式输出数据:http://puu.sh/kVTjk/c1471e903a.jpg

我想让用户选择他想要交易/使用的物品,我想接收该物品的ID,这是底部的整数值,用户应该能够选择多个物品?

我如何做到这一点?最好的方法是什么?谢谢。

有很多方法可以做到这一点。

可以使用普通的Submit:

<form method="POST" action="script.php">
<table>
    <tr>
        <th></th>
        <th>Image</th>
        <th>Name</th>
    </tr>
<?php
foreach ($userItems_get as $item => $value) {
    if ($value['prefab'] == 'wearable') {
        $id = "";
        foreach ($userItemsLoad as $key => $values) {
            if ($item == $values['defindex']) {
                $id = $values['id'];
                break;
            }
        }
        ?>
        <tr>
            <td><input type="checkbox" name="itemSelect[]" class="itemSelect" value="<?php echo $id; ?>" /></td>
            <td>
                <img src="<?php echo $value['image_inventory']; ?>.png" width="90" height="60">
            </td>
            <td>
                <?php echo $value['name']; ?><br />
                <?php
                if (!isset($value['item_rarity'])) {
                    $rarity = "common";
                } else {
                    $rarity = $value['item_rarity'];
                }
                ?>
            </td>
        </tr>
        <?php
    }

}
?>
</table>
    <button type="Submit">
        Normal Submit
    </button>
    <button type="button" id="ajSubmit">
        Ajax Submit
    </button>
</form>

Script.php:

<?php
echo "<pre>";
print_r($_POST['itemSelect']);
echo "</pre>";
?>

或使用jQuery

<script>
$(function() {
    $("#ajSubmit").click(function() {
        var selectedItemIds = $("input.itemSelect").map(function(){
            return $(this).val();
        }).get();
    });
});
</script>

selectedItemIds将保存所有ID值

为每个条目添加一个复选框,并为复选框添加一个类以引用

<input class="itemId" type="checkbox" value="$values['defindex']">

您可以使用JQuery选择所有选中的复选框并在每个循环中循环它们

//Select all input elements which has class of itemId and it is checked then loop through with each.
$("input.itemId[checked='checked']").each(function(){
    var itemId = $(this).val();
    alert(itemId);
    //Do something else
}