0

次の select 要素を格納できるようにしたいと考えています。変数内に、それを構築する php foreach ループを完備し、動的に作成されたフォームに含めることができます (最初の 2 行は、$statement と$lengths は.) 私が試した解決策は以下のとおりですが、変数内に foreach ループを配置することはできません。

   //$statement = 'in %s days %s will have the most followers'
   //$lengths = array([0]=>'3 days',[1]=>'4 days',[2]=>'6 days')

   <select name="timeframe">  
     <?php foreach($lengths as $length)
     {
       echo "<option value = " . $length . "/>" . $length . "</option>";
     }?> 
    </select> 

これが私の最初の試みの解決策です(失敗しました):

<?php
 $select_a = '<select name="timeframe">' .  
   foreach($lengths as $length)
 {
   echo "<option value = " . $length . "/>" . $length . "</option>";
 } . '</select>';

 $select_b = '<select name="celebrity">' . 
   foreach($names as $name)
 {
   echo "<option value = " . $name . "/>" . $name . "</option>";
 } . '</select>';?>

私がこれを行っている理由は、配列 ($lengths と $names) がそれぞれデータベースにシリアル化された形式で格納され (その後、ここでループできるように非シリアル化され)、3 番目のフィールドに次のステートメントが含まれるためです。 %s プレースホルダー。最終的な結果は、html フォーム要素内で以下をエコーアウトできるということです。

4

1 に答える 1

1

そのようなエコーや新しい変数を使用する代わりに、$select_a .= X を使用できます。.= 演算子は、古いものを置き換える代わりに、値または文字列を変数に追加します。

したがって、あなたの場合、次のように書くことができます:

$select_a = '<select name="timeframe">';  
foreach($lengths as $length)
{
$select_a .= "<option value = " . $length . "/>" . $length . "</option>";
} 
$select_a .= '</select>';

$select_b = '<select name="celebrity">'; 
foreach($names as $name)
{
$select_b .= "<option value = " . $name . "/>" . $name . "</option>";
}
$select_b .= '</select>';
于 2013-10-28T04:16:32.523 に答える