2017-03-09 25 views
0

通過複選框我想通過&值。我怎樣才能做到這一點。我只能傳遞一個值。我想,但它不工作通過複選框傳遞兩個變量在php

while($row_tbl = mysqli_fetch_array($query)) 
     { 
     <tr class="success" style="font-size:12px;"> 

     <td > <input type="checkbox" name="check[]" class="chk_val" value=" <?php echo $row_tbl['Course_ID'] ?> " id="in" onclick="test()" /></td> 

      <td > <?php echo $row_tbl['Course_ID'] ?> </td> 
      <td> <?php echo $row_tbl['Course_Title'] ?> </td> 
      <td> <?php echo $row_tbl['Section'] ?> </td> 
      <td> <?php echo $row_tbl['Time'] ?> </td> 
      <td> <?php echo $row_tbl['Day'] ?> </td> 
      <td> <?php echo $row_tbl['Dept'] ?> </td> 
      <td> <?php echo $row_tbl['Capacity'] ?>&nbsp/&nbsp 0 </td> 


        <?php 

        } 
+0

你有什麼試過,這是行不通的? –

+0

使用正確的標籤。這與Laravel和CakePHP無關。 – burzum

回答

1

要傳遞多個值,您需要創建多個同名複選框(如數組)

<input type="checkbox" name="check[]" class="chk_val" value="value1"/> 
<input type="checkbox" name="check[]" class="chk_val" value="value2"/> 
<input type="checkbox" name="check[]" class="chk_val" value="value3"/> 
<input type="checkbox" name="check[]" class="chk_val" value="value4"/> 

在你的控制器,

$values = $request->check; //the array of checked inputs. 

然後你可以通過它循環

foreach($values as $value) { 
    ... 
} 

更新

根據聊天討論,您希望每個複選框發送2個不同的字段。在您的複選框中,放置這樣的字段

@foreach($courses as $course) 
    <input type="checkbox" 
     name="check[]" 
     class="chk_val" 
     value="{{ $course->id }}-{{ $course->section }}"/> 
@endforeach 

請注意這裏的值。我添加了一個在控制器中有用的分隔符-。在控制器現在

public function selectedCourses(Request $request) 
{ 
    ... //whatever you do for validation 

    //loop through selected courses 
    foreach($request->check as $values) { 
     $values = explode("-", $values); //split where we added the dash 
     $id = $values[0]; //the course ID 
     $section = $values[1]; // the course section 

     ... do what you want here with that information 
    } 
} 

瞧!

+0

謝謝,但我的工作是不同的。這裏我用一個複選框,以及通過我想捕獲兩個變量 <?PHP的echo $ row_tbl [ 'COURSE_ID']> ​​<?PHP的echo $ row_tbl [ '科']> – Mithun

+0

你是試圖將值傳遞給單個輸入。讓我告訴你已經是不可能的了。你現在所做的就是將你的值壓縮成一個字符串或一個數組,並將它們提供給你的輸入。您不能通過相同的輸入傳遞2個單獨的值。 – EddyTheDove

+0

在這裏看到如何使用分隔符發送緊湊的值到一個單一的字符串:http://stackoverflow.com/questions/3407317/two-values-for-one-name-in-input – EddyTheDove