【问题标题】:PHP if statements inside of echo to create HTML option listecho 中的 PHP if 语句创建 HTML 选项列表
【发布时间】:2012-02-10 18:41:01
【问题描述】:

我有一个包含 10 个数字的 HTML 选项列表。我希望根据从数据库中检索到的值预先选择这些选项之一。如果检索到的值为 0 或 FALSE,则应选择 value="0",如果检索到的值为 1,则应选择 value="1",依此类推。

我查看了:if block inside echo statement? 但是,我无法使用它的信息解决我的问题。

我什至可以这样做吗?我在第一个 if 语句调用时得到一个解析错误,我的语法肯定是非常错误的。

守则:

$uv = FALSE;

        while ($r2_rows = mysqli_fetch_array($r2, MYSQLI_ASSOC)) {
            if (array_key_exists($r1_rows['article_id'], $r2_rows)) {
                $uv = $r2_rows['user_vote']; // Get user_vote value.
                $selected = 'selected="selected"';
                echo'
                    <td align="left">
                        <select class="articlevote" name="article_vote">
                            <option id="vote0" value="0"'.if($uv == 0 || $uv == FALSE) $selected.'>No Vote</option>
                            <option id="vote1" value="1"'.if($uv == 1) $selected.'>1</option>
                            <option id="vote2" value="2"'.if($uv == 2) $selected.'>2</option>
                            <option id="vote3" value="3"'.if($uv == 3) $selected.'>3</option>
                            <option id="vote4" value="4">4</option>
                            <option id="vote5" value="5">5</option>
                            <option id="vote6" value="6">6</option>
                            <option id="vote7" value="7">7</option>
                            <option id="vote8" value="8">8</option>
                            <option id="vote9" value="9">9</option>
                            <option id="vote10" value="10">10</option>          
                        </select>   
                    </td>';
            } // End of IF - article_id has a user vote.

        } // End of WHILE - checking current article_id against every user_id vote.

【问题讨论】:

    标签: php xhtml echo option


    【解决方案1】:

    使用三元运算符?:

    echo "Blah".($somecondition == true ? "something" : "another thing")."more blah";
    

    【讨论】:

      【解决方案2】:

      你可以把这个过程分成两部分:

      $uv = FALSE;    
      
      while ($r2_rows = mysqli_fetch_array($r2, MYSQLI_ASSOC)) {
          if (array_key_exists($r1_rows['article_id'], $r2_rows)) {
              echo buildVotes($r2_rows['user_vote'], $uv);
          }
      }
      

      在此处构建您的选择菜单:

      function buildVotes($selectedIndex, $uv){
          $noOfVotes = 10;
          $selectMenu = '<td align="left"><select class="articlevote" name="article_vote">';
          $options = "";
          for($i = 0; $i<$noOfVotes; $i++){
              if($uv == true){
                  $selected = ($selectedIndex == $i) ? 'selected="selected"'  : "";
              }
              if($i == 0){
                  if($uv == false){
                      $selected = 'selected="selected"';
                  }
                  $options .= '<option id="vote'.$i.'" value="'.$i.'" '.$selected.' >No Vote</option>';
              }else{
                  $options .= '<option id="vote'.$i.'" value="'.$i.'" '.$selected.' >'.$i.'</option>';
              }
          }
          $selectMenu .= $options."</select></td>";
          return $selectMenu;
      }
      

      查看示例http://codepad.org/1O0PpQ7R

      【讨论】:

      • 干杯这非常有用,分解成一个函数后更加整洁!
      猜你喜欢
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      相关资源
      最近更新 更多