2017-10-02 19 views
-2

私はphpタグ内で 'php'ロジック機能を活用するように移動しようとしています。私はそれの仕事のほとんどを持っているが、私は持っているオプションリストで少し苦労している。私はフォーラムを見回しましたが、これに近いものは見つけられません。PHP内でHTMLオプションリストの情報が表示されないecho

<div class="plan"> 
    <label for="g2c3m">Month</label> 
     <select id="g2c3m" name="g2c3m"> 
     <option value=""></option> 
     <option <?php echo ($row["g2c3m"] === "1")?"selected" : ""; ?> >1</option> 
     <option <?php echo ($row["g2c3m"] === "2")?"selected" : ""; ?> >2</option> 
     <option <?php echo ($row["g2c3m"] === "3")?"selected" : ""; ?> >3</option> 
     <option <?php echo ($row["g2c3m"] === "4")?"selected" : ""; ?> >4</option> 
     <option <?php echo ($row["g2c3m"] === "5")?"selected" : ""; ?> >5</option> 
     <option <?php echo ($row["g2c3m"] === "6")?"selected" : ""; ?> >6</option> 
     <option <?php echo ($row["g2c3m"] === "7")?"selected" : ""; ?> >7</option> 
     <option <?php echo ($row["g2c3m"] === "8")?"selected" : ""; ?> >8</option> 
     <option <?php echo ($row["g2c3m"] === "9")?"selected" : ""; ?> >9</option> 
     <option <?php echo ($row["g2c3m"] === "10")?"selected" : ""; ?> >10</option> 
     <option <?php echo ($row["g2c3m"] === "11")?"selected" : ""; ?> >11</option> 
     <option <?php echo ($row["g2c3m"] === "12")?"selected" : ""; ?> >12</option> 
    </select> 
</div> 

私はphpベースのコードにこのhtmlベースのコードを移行しようとしている:ここで

は私の元のオプションリストは、次のようになります。ここで私が作ってみたものです:

echo "<div class=\"plan\">"; 
    echo "<label for=\"g2c3m\">Month</label>"; 
     echo "<select id=\"g2c3m\" name=\"g2c3m\">"; 
     echo "<option value=\"\"></option>"; 
     echo "<option ".$row['g2c3m']." === \"1\")?\"selected\" : \"\"; >1</option>"; 
     echo "<option ".$row['g2c3m']." === \"2\")?\"selected\" : \"\"; >2</option>"; 
     echo "<option ".$row['g2c3m']." === \"3\")?\"selected\" : \"\"; >3</option>"; 
     echo "<option ".$row['g2c3m']." === \"4\")?\"selected\" : \"\"; >4</option>"; 
     echo "<option ".$row['g2c3m']." === \"5\")?\"selected\" : \"\"; >5</option>"; 
     echo "<option ".$row['g2c3m']." === \"6\")?\"selected\" : \"\"; >6</option>"; 
     echo "<option ".$row['g2c3m']." === \"7\")?\"selected\" : \"\"; >7</option>"; 
     echo "<option ".$row['g2c3m']." === \"8\")?\"selected\" : \"\"; >8</option>"; 
     echo "<option ".$row['g2c3m']." === \"9\")?\"selected\" : \"\"; >9</option>"; 
     echo "<option ".$row['g2c3m']." === \"10\")?\"selected\" : \"\"; >10</option>"; 
     echo "<option ".$row['g2c3m']." === \"11\")?\"selected\" : \"\"; >11</option>"; 
     echo "<option ".$row['g2c3m']." === \"12\")?\"selected\" : \"\"; >12</option>"; 
     echo "</select>"; 
echo "</div>"; 

オプションリストが正しく表示しますが、私は、サーバーに情報を送信すると、それが正常に戻ってecho'dされていません。

私は引用符に関する適切な\のルールに従っていると思いますが、動作しません。

私には何が欠けていますか?私は援助に永遠に感謝しています。

+2

なぜですか?最初の例ははるかに読みやすくなっていますが、ループを使用することで確実に繰り返し性を向上させることができます。最初の例ではPHPロジックを使用しているので、ここであなたの書き直しで何を達成しようとしているのか分かりません。 – Devon

+0

私は同意しますが、他にもやりたいことがあります。 – airider74

+2

私はそれを得ることはありません。どちらもPHPを使用していますが、あなたが達成した唯一のことは、後で読むことと作業するのが10倍になります。最初の例はテンプレート作成に最適です。 – Devon

答えて

2

これはあなたの質問に対する回答ではありませんが、それはあなたに関係なくお手伝いします。

テンプレートコードを書くときにPHPコードを何度も開いたり閉じたりすることは、まったく受け入れられます。 PHPは必要なだけ閉じて開くことができます(式の途中でない限り)。

<?php if (condition): ?> 
    <p>Hello World</p> 
<?php else: ?> 
    <p>Goodbye World</p> 
<?php endif; ?> 

またはループのため:だから、そのようにようにPHPを再オープンHTMLをプリントアウトし、if文、近くにPHPを実行することができます

<?php foreach($results as $row): ?> 
    <tr> 
     <td><?php echo $row['name'] ?></td> 
    </tr> 
<?php endforeach; ?> 

これは/ alternative syntax(IF/ENDIF、foreachのを使用していますendforeach)はテンプレート作成に最適です。

+0

ありがとうデボン私はこれを試してみましょう。 – airider74

+0

これはうまくいくと思います...私はこれについて作業してお知らせします – airider74

+0

デボン...これは私の法案に適合してしまいました。そして代替構文に関するもう少し研究をして、今度は将来のphpつかいます。私はここでのコメントセクションで指摘された構文 "flyingmana"を使用して終了しました... http://php.net/manual/en/control-structures.alternative-syntax.php – airider74

1

のは、両方のスタイルで1行を比較してみましょう:第二版では$row["g2c3m"] === "1"、出力選択何も

あなたはその演算子を持っていない場合

<option <?php echo ($row["g2c3m"] === "1")?"selected" : ""; ?> >1</option> 
echo "<option ".$row['g2c3m']." === \"1\")?\"selected\" : \"\"; >1</option>"; 

最初のものは(三項演算子を持っています。代わりに、PHPのコードを出力している。

正しいだろう

echo "<option ". (($row['g2c3m'] === "1")? "selected" : "") . " >1</option>"; 

このようにして、3項演算子は単に文字列として出力されるのではなく、依然として評価されます。

注:私は3値演算子がインラインで使用できることは100%確信していません。複数の行が必要な場合があります。可変または複数のエコーを使用して、連結すること。

+0

さて、私はこれを見てみましょう – airider74

+0

ちょうどこれを試して....まだ動作しませんでした。しかし助けをありがとう – airider74

関連する問題