Php foreach循环不';我不能正常工作

Php foreach循环不';我不能正常工作,php,Php,我真的不知道这个脚本出了什么问题。。我真的认为一切都是对的,但不知怎么的,我的strpos-syntax不能正常工作。$\u POST['category']是一个允许多选的选择列表。这就是为什么我把它放在一个数组中,但它可能是不正确的 $cat_array = $_POST['category']; foreach($cat_array as $key => $value ) { if(strpos($value, 'n_') !== false) {

我真的不知道这个脚本出了什么问题。。我真的认为一切都是对的,但不知怎么的,我的strpos-syntax不能正常工作。
$\u POST['category']
是一个允许多选的选择列表。这就是为什么我把它放在一个数组中,但它可能是不正确的

$cat_array = $_POST['category'];

foreach($cat_array as $key => $value )
{
    if(strpos($value, 'n_') !== false)
    {

        // Do something about the new categories.

    } else {

        // work with existing categories

    }

}
html-I还有一个jquery,用于处理
addcategory
字段。
n(数字)-(值)
由jquery创建

<div>
<label for="category">Category</label>
<select name="category" size="10" multiple="MULTIPLE">
  <option class="cat_1" value="1">Cars</option>
  <option class="cat_2" value="2">Lego</option>
  <option class="cat_3" value="3">Country</option>
  <option class="cat_4" value="4">School</option>
  <option class="cat_5" value="5">Cooking</option>
  <option class="cat_6" value="n_6-test">test</option>
  <option class="cat_7" value="n_7-Buuh">Buuh</option>
</select> <br>

<input type="text" name="new_cat" value="" size="40" maxlength="120" placeholder="Category Name"><input class="plus" name="" type="button" value="Add Category">
<p class="plus_comment"></p>

</div>

类别
汽车
乐高
国家
学校
烹饪
测试
嗯


您的
$\u POST['category']
不是数组。在看到var_dump结果后,它只能是一个字符串。如果它是一个数组,那么var_dump应该如下显示

array (size=1)
  1 => string '5' (length=1)
因此,检查HTML代码是否通过数组


编辑:将
category
更改为
category[]

以使您的类别实际上成为一个数组,您必须向类别添加括号,如下所示:
category[]

所以你的HTML看起来像这样

<div>
  <label for="category">Category</label>
  <select name="category[]" size="10" multiple="MULTIPLE">
    <option class="cat_1" value="1">Cars</option>
    <option class="cat_2" value="2">Lego</option>
    <option class="cat_3" value="3">Country</option>
    <option class="cat_4" value="4">School</option>
    <option class="cat_5" value="5">Cooking</option>
    <option class="cat_6" value="n_6-test">test</option>
    <option class="cat_7" value="n_7-Buuh">Buuh</option>
  </select> <br>

  <input type="text" name="new_cat" value="" size="40" maxlength="120" placeholder="Category Name">
  <input class="plus" name="" type="button" value="Add Category">
  <p class="plus_comment"></p>
</div>

类别
汽车
乐高
国家
学校
烹饪
测试
嗯


尝试选择您的列表名称

category[]

开始调试:
var\u dump($cat\u array)
输出什么?您可能需要使用explode()将$\u POST['category']转换为数组。否则,我假设$cat\u数组将是一个字符分隔的字符串(“a,b,c”,等等)。var\u dump($\u POST['category'])的结果是什么?您是否也可以先发布错误日志(如果有):您确定,$cat\u数组确实是一个数组()?对应的HTML是什么样子的?你知道我讨厌犯这些小错误。。当然是那个。。我甚至没有考虑为这项工作准备HTML脚本。。非常感谢!