-4

我正在尝试将嵌入在 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 语句中生成语法错误。我只是不明白为什么:/

4

2 回答 2

2

第二个是尝试“将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;
?>

您尝试做的第一件事和第二件事之间的区别是:第一件事输出 HTML 和混合的 PHP。PHP 代码由 PHP 解释器替换为echo语句的输出。

第二种方法是将所有 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
于 2012-07-26T10:31:59.380 回答
0

试试这个:

<?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> 
";
?>
于 2012-07-26T10:38:54.493 回答