-4

I'm trying to convert my php code embedded in html to php code with embedded html code. My IDE is throwing syntax errors. can someone please help, thanks.

html/php (working):

    <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>

The above is a snippet for a single item in my drop down list. They just keep repeating for all products and it works.

php/html (fails to work):

<?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>';
?>

the above generates a syntax error at the first if statement. I'm just not seeing why : /

4

2 に答える 2

2

if2 つ目は、「ステートメントを文字列に追加」しようとしています。そのように書くことはできません。

これを試して:

<?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;
?>

あなたがやろうとしている最初のことと 2 番目のことの違いは次のとおりです。echoPHP コードは、PHP インタープリターによってステートメントの出力に置き換えられます。

2 番目の方法は、すべての HTML を変数に入れることです。ただし、PHP と HTML を混在させることはできません。常に PHP スクリプトのスコープ内にいるため、適切な PHP を作成する必要があります。ステートメント

$select = 'Hello ' . if (condition) echo 'foo';

適切なPHPコードではありません

$select = 'Hello ';
if (condition) $select = $select . 'foo';

正しいPHP構文です。

編集
ところで: あなたが投稿した 2 番目のサンプル (私が変更したもの) は、有効な秒を出力しません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 に答える