0

Bootstrap + Laravel4 を使用しているサイト。フォームには、ユーザーがクリックして選択できる画像がいくつかあります。素敵な JQuery プラグインで行われます: http://rvera.github.io/image-picker/

現在、それはhtmlで書かれており、動作しています:

            <label><span><i class="icon-check"></i></span> Click on a room to select it</label>
          <select name="rooms[]" multiple="multiple" class="image-picker show-html">
              <option value=""></option>
              <option name="1room" data-img-src="assets/img/rooms/singleRoom.jpg" value="Single room">Single room</option>
              <option name="2room" data-img-src="assets/img/rooms/2room.jpg" value="Double room">Double room</option>
          </select> 

これらすべてのマークアップを Laravel4 で書き直す必要はありません。しかし、1 つ必要なことがあります。検証エラーが発生した場合に値を保持するには、Input::old('inputName') に追加する必要があります。それは非常に重要です。私はこれを試してみました: - 単一のオプションの値を {{ 'Single room', Input::old('1room') }} に設定します - 選択の値を {{ Input::old('rooms []') }} しかし、どれも機能していません。エラーは発生しませんが、元の値は保持されません。

誰かがどうすればそれを行うことができるか知っていますか?

どうもありがとうございました!

編集:

ページの上部に Input::old() の値を出力すると、実際には部屋の値が保持されます。

array (size=8)
  'rooms' => 
  array (size=2)
  0 => string 'Single room' (length=11)
  1 => string 'Double room' (length=11)
 'arrival' => string '13/11/2013' (length=10)
 'outgoing' => string '11/11/2013' (length=10)
 'name' => string 'name' (length=4)
 'email' => string 'email' (length=5)
 'phone' => string '9999999999' (length=10)
 'message' => string 'gjhgjghj' (length=8)
 'submit' => string '' (length=0)

ポイントは、それらをどのようにフォームに表示するかです。その配列に含まれる値に基づいていくつかの画像を正確に選択する方法。

EDIT2:

これは、@Samuraisoulification のおかげで、select のどのオプションが選択されているかを理解する方法です。

          <?php  
              if (isset(Input::old()['rooms']))
              {

               for($i = 0 , $input = Input::old()['rooms'] , $c = count($input) ; $i < $c ; $i++)
               {
                 if($input[$i] == "Single room")
                 {
                      echo "Single room selected";
                 }

                 if($input[$i] == "Double room")
                 {
                      echo "Double room selected";
                 }
               }
              }
          ?>
4

1 に答える 1