3

オプションの選択ボックスを生成するために、SQL と PHP をかなり簡単に使用しています。私はもともとサイズ属性を持つ選択ボックスを持っていましたが$_POST、フォームが送信された後に常に設定されていない理由を理解できませんでした。結局、size属性なしで試してみたところ、うまくいきました。確認するために、最初に意図した選択ボックスに戻り、サイズ属性を設定し、$_POST変数の設定に失敗したことを確認しました。その後、size='10'タグから削除するだけで、意図したとおりに機能しました。

属性を配置したコードを次に示します。

<select name='select_news' size='10'>
  <?php
    foreach($news_dates_list as $date)
    {
      echo ("<option value='".$date['month']."/".$date['day']."/".$date['year']."'>".$date['month']."/".$date['day']."/".$date['year']."</option>");
    }
  ?>
</select>

フォームが送信され、 にアクセスしようとすると$_POST['select_news']、次のエラーが生成されます。

Notice: Undefined index: select_news in C:\website\admin\index.php 行 310. "size='10'" 部分のみを削除すると、エラーは発生せず、期待どおりに動作します。

したがって、選択ボックスのサイズ属性が原因で選択ボックスにアクセスしようとしたときに誤動作することが正しいかどうかについての確認を探しています$_POST。それがこの影響を与えるべきではない場合、誰がこれを引き起こしているのか知っていますか?

4

2 に答える 2

0

あなたの質問への答えではありませんが、変更してください:

echo ("<option value='".$date['month']."/".$date['day']."/".$date['year']."'>".$date['month']."/".$date['day']."/".$date['year']."</option>");

に:

echo "<option value='{$date['month']}/{$date['day']}/{$date['year']}'>{$date['month']}/{$date['day']}/{$date['year']}</option>";

つまり、echo で括弧を使用{}せず、文字列を常に開始/停止することなく、引用符で囲まれた文字列内の変数を補間するために使用します。


サイズは、返されるものとは関係ありません。他の何かが変化しています。私は2つのことを提案します:

  1. 生成されたソース コードを見てください。おそらく、何らかの方法で引用を台無しにしました。
  2. してprint_r($_RESULT)、そこにあるものを見てください
于 2012-09-06T01:37:47.473 に答える
0

同じ名前のチェックボックスが複数ある場合など、名前を からselect_newsに変更してみてください。select_news[]

于 2012-09-06T01:44:37.983 に答える