我正在尝试将嵌入在html中的php代码转换为嵌入html代码的php代码。我的IDE出现语法错误。有人能帮忙吗,谢谢。
html/php(工作):
<select name="products">
<option value="select">Select</option>
<option value="product1" <?php if (!isset($updatebtn_clicked)){ echo @$product_list['product1']; }elseif ($_POST['products'] == $product_name[0]){ echo 'selected="selected"' ;} echo
'>'. $product_name[0]. '</option>' ?> </select>
以上是我的下拉列表中单个项目的片段。他们只是不断重复所有的产品,这是有效的。
php/html(无法工作):
<?php
$select = '<select name="products">
<option value="select">Select</option>
value="'.$product_name[0].'"'.
if (!isset($updatebtn_clicked))
{ echo @$product_list[$product_name[1]]; }elseif ($_POST['products'] == $product_name[1]){ echo 'selected="selected"' ;} echo'>'. $product_name[1]. '</option></select>';
?>
以上操作在第一个if语句处生成语法错误。我只是不明白为什么:/
第二个是尝试"将if
语句附加到字符串"。你不能那样写。
试试这个:
<?php
$select = '<select name="products">
<option value="select">Select</option>
value="'.$product_name[0].'"'; // <- Finish assignment here
if (!isset($updatebtn_clicked))
{
$select = $select . @$product_list[$product_name[1]];
}
elseif ($_POST['products'] == $product_name[1])
{
$select = $select . 'selected="selected"';
}
$select = $select . '>'. $product_name[1]. '</option></select>';
echo $select;
?>
您尝试做的第一件事和第二件事之间的区别是:第一件事输出混合PHP的HTML。PHP解释器将用echo
语句的输出替换PHP代码。
第二种方法是将所有HTML放入一个变量中。然而,在那里,您不能将PHP和HTML混合使用。您一直处于PHP脚本的范围内,因此必须编写正确的PHP。声明
$select = 'Hello ' . if (condition) echo 'foo';
不是正确的PHP代码,而
$select = 'Hello ';
if (condition) $select = $select . 'foo';
是正确的PHP语法。
编辑
顺便说一句:你发布的第二个样本(我修改了它)没有输出有效的第二option
!它应该是:
$select = '<select name="products">
<option value="select">Select</option>
<option value="'.$product_name[0].'"'; // <- Finish assignment here
试试这个:
<?php
$select = "
<select name='products'>
<option value='select'>Select</option>
<option value='product1' ".( (!isset($updatebtn_clicked)) ? @$product_list['product1'] : "selected='selected'").">".$product_name[0]."</option>
</select>
";
?>