从PHP中生成一个数组
我有很多复选框。我想把它们的值放到一个逗号分隔的数组中。 如果取消选中复选框,则值将为空,因此: 酒吧、停车场、电视等 我该怎么做?制作一个数组后,我将提交到数据库中从PHP中生成一个数组,php,Php,我有很多复选框。我想把它们的值放到一个逗号分隔的数组中。 如果取消选中复选框,则值将为空,因此: 酒吧、停车场、电视等 我该怎么做?制作一个数组后,我将提交到数据库中 <p> <label for="meta_box_check_bar">bar</label> <input type="checkbox" id="meta_box_check_bar" name="meta_box_check_bar" valu
<p>
<label for="meta_box_check_bar">bar</label>
<input type="checkbox" id="meta_box_check_bar" name="meta_box_check_bar" value="bar" />
<label for="meta_box_check_parking">parking</label>
<input type="checkbox" id="meta_box_check_parking" name="meta_box_check_parking" value="parking" />
<label for="">accessible-for-disabled</label>
<input type="checkbox" id="meta_box_check_accessible-for-disabled" name="meta_box_check_accessible-for-disabled" value="accessible-for-disabled" />
<label for="">air-conditioning</label>
<input type="checkbox" id="meta_box_check_air-conditioning" name="meta_box_check_air-conditioning" value="air-conditioning" />
<label for="">frigobar </label>
<input type="checkbox" id="meta_box_check_frigobar" name="meta_box_check_frigobar" value="frigobar" />
<label for="">pets</label>
<input type="checkbox" id="meta_box_check_pets" name="meta_box_check_pets" value="pets" />
<label for="">phone</label>
<input type="checkbox" id="meta_box_check_phone" name="meta_box_check_phone" value="phone" />
<label for="">tv</label>
<input type="checkbox" id="meta_box_check_tv" name="meta_box_check_tv" value="tv" />
<label for="">typical-local-dishes</label>
<input type="checkbox" id="meta_box_check_typical-local-dishes" name="meta_box_check_typical-local-dishes" value="typical-local-dishes" />
</p>
酒吧
停车
残疾人无障碍
空调
弗里戈巴
宠物
电话
电视
典型的地方菜
将您的字段命名为checkbox[],然后在PHP中,您可以使用$\u get['checkbox']获得类似的数组。对我来说,这听起来像是ajax的工作。我会考虑Dojo或jQuery来收集和传递数据。 < P>你应该给它们名称相同的名称,这样当你在名称上获取GET时,它会返回所有被检查的值的数组。
以下是您可以阅读的参考资料:
如果可能,我建议您在变量名中使用
[]
来传递数组并在PHP文件中检索它们的值。大概是这样的:
HTML
<p>
<label for="meta_box_check_bar">bar</label>
<input type="checkbox" id="meta_box_check_bar" name="array[]" value="bar" />
<label for="meta_box_check_parking">parking</label>
<input type="checkbox" id="meta_box_check_parking" name="array[]" value="parking" />
<label for="">accessible-for-disabled</label>
<input type="checkbox" id="meta_box_check_accessible-for-disabled" name="array[]" value="accessible-for-disabled" />
<label for="">air-conditioning</label>
<input type="checkbox" id="meta_box_check_air-conditioning" name="array[]" value="air-conditioning" />
<label for="">frigobar </label>
<input type="checkbox" id="meta_box_check_frigobar" name="array[]" value="frigobar" />
<label for="">pets</label>
<input type="checkbox" id="meta_box_check_pets" name="array[]" value="pets" />
<label for="">phone</label>
<input type="checkbox" id="meta_box_check_phone" name="array[]" value="phone" />
<label for="">tv</label>
<input type="checkbox" id="meta_box_check_tv" name="array[]" value="tv" />
<label for="">typical-local-dishes</label>
<input type="checkbox" id="meta_box_check_typical-local-dishes" name="array[]" value="typical-local-dishes" />
</p>
永远不要在一个数据库字段中放置多个ne信息。为什么不?在这种情况下,我不想用每行1-2个单词的条目填充数据库。如果你想用一个条来选择行,你需要用正则表达式或一些字符串进行全表扫描——这会降低你的性能。真的。我只需要抓取整个数组,然后用php将其分解。这会扼杀表演吗?所以我选择行的ID,我不需要单独选择条。这不会给他空值。他没有读到应该有空值的事实,很好。这不会给他空值。这些控件是客户端控件,服务器无法立即使用。无论哪种方式,您都必须有某种机制将数据从客户端的浏览器获取到托管服务器。Ajax和其他方法一样好。你应该阅读其他答案,帕根指出,大多数答案都忽略了一个事实,即请求者需要空值。@richardhsu,谢谢你的建议。但即使在这种情况下,他也可以比较PHP文件中传递的值,如果没有通过,他可以认为该字段是空的。这是我的意见,我会尝试用这个选项编辑我的答案。
<p>
<label for="meta_box_check_bar">bar</label>
<input type="checkbox" id="meta_box_check_bar" name="array[]" value="bar" />
<label for="meta_box_check_parking">parking</label>
<input type="checkbox" id="meta_box_check_parking" name="array[]" value="parking" />
<label for="">accessible-for-disabled</label>
<input type="checkbox" id="meta_box_check_accessible-for-disabled" name="array[]" value="accessible-for-disabled" />
<label for="">air-conditioning</label>
<input type="checkbox" id="meta_box_check_air-conditioning" name="array[]" value="air-conditioning" />
<label for="">frigobar </label>
<input type="checkbox" id="meta_box_check_frigobar" name="array[]" value="frigobar" />
<label for="">pets</label>
<input type="checkbox" id="meta_box_check_pets" name="array[]" value="pets" />
<label for="">phone</label>
<input type="checkbox" id="meta_box_check_phone" name="array[]" value="phone" />
<label for="">tv</label>
<input type="checkbox" id="meta_box_check_tv" name="array[]" value="tv" />
<label for="">typical-local-dishes</label>
<input type="checkbox" id="meta_box_check_typical-local-dishes" name="array[]" value="typical-local-dishes" />
</p>
// Prevent errors when nothing is checked
if( ! is_array($_POST['array']) )
$_POST['array'] = array();
// Possible items
$possible_item[] = "bar";
$possible_item[] = "parking";
$possible_item[] = "accessible-for-disabled";
$possible_item[] = "air-conditioning";
$possible_item[] = "frigobar";
$possible_item[] = "pets";
$possible_item[] = "phone";
$possible_item[] = "tv";
$possible_item[] = "typical-local-dishes";
// Starting output string
$output = '';
// Loop the possible items
foreach($possible_item as $value)
{
// If item is in POST array, add to the output string, else put just comma if needed
if( in_array($value, $_POST['array']) )
$output .= ( empty($output) ? '' : ',' ) . $value;
else
$output .= ( empty($output) ? '' : ',' );
}
echo $output;