使用strpos()搜索$_POST数组


Search $_POST array using strpos()

提交表单后,我需要在POST数组中搜索类似"ProductID"的单词,并将名称和值存储在关联数组中。我需要这样做,因为你可以通过另一个页面列出x数量的产品。所以有时只列出3种产品,其他时候是10种,以此类推

HTML:

<div class="col-sm-3">
    <label class="control-label">ADULT TRIP - $139</label>
    <select class="form-control valid" name="ProductID-1">
        <option value="-1">-- Please Select --</option>
        <option value="0">0</option><option value="1">1</option>
        <option value="2">2</option><option value="3">3</option>
    </select>
</div>

到目前为止,我在PHP中得到了什么:

foreach( $_POST as $value ) {
    if (strpos($_POST,'ProductID') !== false) {
        //Store in associative array
    }
}

我想要实现的是,一旦提交了表单,就通过POST循环,检查每个项是否有单词"ProductID",如果匹配,则将名称和值存储到关联数组中。此刻一切都在回归真实。如有任何帮助,我们将不胜感激。

使用:

foreach( $_POST as $key=>$value ) {
    if (strpos($key,'ProductID') !== false) {
        //Store in associative array
    }
}

相反:

foreach( $_POST as $value ) {
    if (strpos($_POST,'ProductID') !== false) {
        //Store in associative array
    }
}

如果你有几个ProductID,我可以使用一个数组name="ProductID[1]",那么管理你的后将很容易

$ProductID= $_POST['ProductID'];

尝试echo$ProductID[0];

正如Ôrel所指出的,我可以使用一个数组,并在我认为合适的时候循环。我将HTML从:更改为

<select class="form-control valid" name="ProductID-1">

至:

<select class="form-control valid" name="ProductID[<? echo $product_Results['ProductID']; ?>]">

提交表单后,我将PHP更改为:

foreach( $_POST as $stuff ) {
    if( is_array( $stuff ) ) {
        foreach( $stuff as $ProductID => $qty ) {
            echo 'product ID: '.$ProductID.' - qty: '.$qty.'<br />';
        }
    } 
}

这样,我就可以在表单中循环,直到找到一个数组(ProductID(,并将其作为关联数组循环。这使我能够获得产品ID以及进入下一步的数量。