1

次のようなコードのチャンクがあります。

<td><?
    $days = array("Sun","Mon","Tue","Wed","Thur","Fri","Sat");
    for($i=1;$i<8;$i++)
    {
        echo $days[$i-1]?><input type="checkbox" name="labDays[]" value="<?=$days[$i]?>" checked="checked"><?
    }?>
</td>

しかし、私が実行するとprint_r($_REQUEST['labDays']);

私は得るArray ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => )

期待していたArray ( [0] => Sun[1] => Mon[2] => Tue[3] => Wed[4] => Thur[5] => Fri[6] => Sat)

ばかげていると思いますが、何が欠けているのかわかりません...

print_r($_REQUEST)pukes:Array ( [pg] => 12 [msg] => Facility Already Exist [facilityname] => kjgkjhgkjhg [facorgtype] => [facilitytype] => [administratorsname] => [divisionname] => [streetaddress1] => [streetaddress2] => [city] => [state] => [zipcode] => [phonenumber] => [faxnumber] => [email] => [mainstate] => [labDays] => Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => ) [facBillingContact] => [facBillingPhone] => [facBillingFax] => [facBillingRep] => [facBillingAccNum] => [facNotes] => [submit] => Create )

var_dump($_REQUEST['labDays'])

array
  0 => string 'Sun' (length=3)
  1 => string 'Mon' (length=3)
  2 => string 'Tue' (length=3)
  3 => string 'Wed' (length=3)
  4 => string 'Thur' (length=4)
  5 => string 'Fri' (length=3)
  6 => string 'Sat' (length=3)
4

3 に答える 3

2

これがあなたが探しているものだと思います:

    <?php
    $days = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
    foreach ($days as $day) {
        echo <<<HTML
    <label>$day
        <input type="checkbox" name="labDays[]" value="$day" checked>
    </label>
HTML;

    }
    ?>

いくつかのメモ:

PHP

  • 簡略構文 (<? ?>および特に<?= ?>) の使用は推奨されません。
  • 配列の反復にforeachは、 よりも適していforます。
  • 文字列には PHP のヒアドキュメント構文を使用します。このようにして、引用符の混乱を回避します。
  • $_POSTor$_GETではなくorを使用する$_REQUESTと、より安全であると見なされます。

HTML

  • HTML のフォーム要素にラベルを使用します。これにより、テキストがフォーム コントロールに関連付けられます。さらに、テキストをクリックすると、適切なチェックボックスもマークされます。
  • checked属性に値は必要ありません。あるだけで十分です。
于 2012-08-20T19:51:23.630 に答える
1

配列をループしたい場合foreachは、最良のオプションです

$days = array("Sun","Mon","Tue","Wed","Thur","Fri","Sat");
foreach($days as $k=>$v)
{
    echo $k?><input type="checkbox" name="labDays[]" value="<?=$v?>" checked="checked"><?
}?>

を使用するforと、次のように実行できます。

$days = array("Sun","Mon","Tue","Wed","Thur","Fri","Sat");
for($i=0;$i<=6;$i++)
{
    echo $i;?><input type="checkbox" name="labDays[]" value="<?=$days[$i]?>" checked="checked"><?
}?>

推奨される方法..

$days = array("Sun","Mon","Tue","Wed","Thur","Fri","Sat");
foreach($days as $k=>$v)
{
    echo $k . ' <input type="checkbox" name="labDays[]" value="'.$v.'" checked="checked">'; //you can give your styles and css ofcourse to make it better..
}
于 2012-08-20T19:39:47.550 に答える
-1

たぶん値を出力するためにechoで:

<input type="checkbox" name="labDays[]" value="<?php echo $days[$i]; ?>" checked="checked">
于 2012-08-20T19:52:55.343 に答える