簡體   English   中英

如何在回聲中嵌入if語句

[英]How to embed if statement inside echo

我對此感到頭疼。 我需要將if語句放入回顯中(此回顯在函數中,實際上是針對表單提交的)

這是部分代碼示例。 在這種情況下,如何將這些if語句放入回顯中?

   <?php echo '<td><select id="depuis" name="depuis">
    <option value=\'4\' <?php if(isset($_POST[\'depuis\']) && $_POST[\'depuis\'] == \'4\'){ echo \'selected\'; } else { echo ''; } ?> ></option>
    <option value=\'1\' <?php if(isset($_POST[\'depuis\']) && $_POST[\'depuis\'] == \'1\'){ echo \'selected\'; } else { echo ''; } ?> >2 ans et moins</option>
    <option value=\'2\' <?php if(isset($_POST[\'depuis\']) && $_POST[\'depuis\'] == \'2\'){ echo \'selected\'; } else { echo ''; } ?> >2 &agrave; 5 ans</option>
    <option value=\'3\' <?php if(isset($_POST[\'depuis\']) && $_POST[\'depuis\'] == \'3\'){ echo \'selected\'; } else { echo ''; } ?> >5 ans et plus</option>
</select>
</td>'
; ?>

一切都是php,因此需要使用多個第一個<?php完成每個echo然后再檢查if 像這樣:

<?php 
  echo '<td><select id="depuis" name="depuis">
    <option value="4"'; 
    if(isset($_POST['depuis']) && $_POST['depuis'] == '4') { 
      echo ' selected'; 
    } 
 echo ' >Something here maybe?</option>...etc

這可以工作-盡管我確定可以簡化它:

<?php

$out = '
    <td>
        <select id="depuis" name="depuis">
        <option value="4"
    ';

    if(isset($_POST['depuis']) && $_POST['depuis'] == '4'){ 
        $out .= 'selected';
    } 

    $out .= '
        ></option>
        <option value='1' 
    ';

    if(isset($_POST['depuis']) && $_POST['depuis'] == '1'){ 
        $out .= 'selected';
    }

    $out .= '
        >2 ans et moins</option>
        <option value=\'2\' 
    ';


    if(isset($_POST['depuis']) && $_POST['depuis'] == '2'){ 
        $out .= 'selected';
    }

    $out .= '
        >2 &agrave; 5 ans</option>
        <option value='3' 
    ';

    if(isset($_POST['depuis']) && $_POST['depuis'] == '3'){ 
        $out .= 'selected';
    }

    $out .= '
            >5 ans et plus</option>
        </select>
    </td>
    ';

    echo $out;
?>

Meilleurs voeux ...

您不應該轉義字符串中的數組鍵

if(isset($_POST[\'depuis\']) ...

應該

if(isset($_POST['depuis']) && ...

您也可以使用數組和循環清理選項的生成

$options = array(
  'label1' => 1,
  'label2' => 2,
  'label3' => 3,
  'label4' => 4
);
$value = (isset($_POST['depuis'])) ? $_POST['depuis'] : 0;

foreach ($options as $label => $optionValue) {
  $selected = ($optionValue == $value) ? ' selected' : '';

  printf('<option value="%s"%s>%s</option>', $optionValue, $selected, $label); 
}

使用內聯if語句:

echo 'Based on your score, you are a ',($score > 10 ? 'genius' : 'nobody');

您將需要使用一個三元運算符,該運算符用作縮短的IF / Else語句:

echo '<option value="'.$value.'" '.(($value=='United States')?'selected="selected"':"").'>'.$value.'</option>';

不確定是否可以按照要求進行操作。 您只需要使用常規的if / else if塊並分別輸出結果。

<?php 
echo("<td><select id=\"depuis\" name=\"depuis\">");
echo("<option value='4'");
if(isset($_POST['depuis']) && $_POST['depuis'] == '4'){ echo("selected"); } 
echo("></option>");

[ ...etc... ]
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM