我已经看过关于此问题的其他问题,但没有人对我有任何答案。我有这行代码:在HTML输入标签中运行PHP函数
foreach ($categories as $category){
echo '<label><input type="checkbox" id="type-'. $category->name . '" value="'. $category->name . '" class="shopping" name="top_level[]" <?php checked('. $category->name . ', $current) ?>>'. $category->name . '</label>';
}
当我运行该文件时,正确的字段显示,但在文本前有一个'>'。 Firebug将HTML输出显示为:
<input type="checkbox" id="type-Fashion" value="Fashion" class="shopping" name="top_level[]" <?php="" echo="" checked(fashion,="" $current)="" ?="">
为什么在整个PHP代码中都有这些=""
?
checked()
函数是Wordpress并返回HTML属性checked='checked'
,但我相信问题在于在HTML标记中使用PHP。
该文件与.php一起保存,我在我的WampServer上运行PH P5.5.12。
我试过很多事情,以及别人的建议:
foreach ($categories as $category){
?>
<label><input type="checkbox" id="type-<?php echo $category->name; ?> value="<?php echo $category->name; ?>" class="shopping" name="top_level[]" <?php if(in_array($category->name, $current)){ echo 'checked="checked"';} ?>><?php echo $category->name; ?> </label>
<?php
}
得到这个错误:
WARNING: IN_ARRAY() EXPECTS PARAMETER 2 TO BE ARRAY, BOOLEAN GIVEN
$current
是一个数组。
另一个帖子建议使用等号<?= ..... ?>
。这并没有改变任何事情。
如果我从输入标签中删除PHP代码,一切正常。
我很感激任何帮助。提前致谢!
你显然错了'$ current'是一个数组。在循环之前放入'var_dump($ current)'。 – Barmar