2013-10-29 37 views
0

獲取名稱和值我有一個複選框,我想所有的值傳遞到功能,以更新表。從具體職位

複選框具有60個選項和I產生它們與從MySQL一個foreach()。

// HTML表單

<div class="form-group"> 
<? $i = 0; 
    foreach ($row_specifics as $title => $value) { 
     if ($value =='on') { ?> 
      <label class="control-label col-lg-2"><?= $title ?></label> 
      <div class="col-lg-1" style="padding-right: 5px; padding-left: 0px;"> 
       <div class="make-switch switch-small" data-on="success" data-off="danger"> 
        <input id="specs_value" name="<?= $title ?>" type="checkbox" value="on" checked/> 
       </div> 
      </div> 
     <? } else { ?> 
      <label class="control-label col-lg-2"><?= $title ?></label> 
      <div class="col-lg-1" style="padding-right: 5px; padding-left: 0px;"> 
       <div class="make-switch switch-small" data-on="success" data-off="danger"> 
        <input id="specs_value" name="<?= $title ?>" type="checkbox" value="off"/> 
       </div> 
      </div> 
     <?} $i++; 
      if($i % 4 == 0) { ?> 
       </div> 
       <div class="form-group"> 
     <?} }?> 

//功能

foreach ($row_specifics as $title => $value) { 

    $value = $_REQUEST[$title]; 
    $query = mysql_query("UPDATE `specifics` SET $title = '$value' WHERE `car_id`= $id"); 
} 

問題:我如何能拿到冠軍,並從$_POST和利用價值它在函數和更新查詢中?

$_POST只獲取「上」的值。不是'關'。我可以讓他們全部或只是從價值獲得標題的值,以便在查詢中使用它。

回答

2

在你的循環與isset驗證是否存在$_POST['title'],這意味着複選框是:

foreach ($row_specifics as $title => $value) { 

    $valueToInsert = (isset($_POST[$title])) ? $value : null; 

    if($valueToInsert) { 
     $query = mysql_query("UPDATE `specifics` SET $title = '{$valueToInsert}' WHERE `car_id`= $id"); 
    } 
} 
+0

謝謝你的迴應。我將選項更改爲'on'後,表格未更新。沒有錯誤 –

+0

'$ valueToInsert'只返回值,但我們需要當前標題在查詢中USET –

+0

目前的標題是'title'因爲你在覈對時刻'如果($ valueToInsert)環路是' –

0

不上的話題,但不完全是題外話...你可以簡化你的代碼,使其更易於管理,更容易讀書。

<? foreach ($row_specifics as $title => $value): ?> 
    <label class="control-label col-lg-2"><?= $title ?></label> 
     <div class="col-lg-1" style="padding-right: 5px; padding-left: 0px;"> 
      <div class="make-switch switch-small" data-on="success" data-off="danger"> 
       <input id="specs_value" name="<?= $title ?>" type="checkbox" value="<?= $value?>"<?= $value=='on' ? 'checked' : ''?>/> 
      </div> 
     </div> 
<? endforeach ?> 

這將刪除if語句和重複代碼塊的需要。

+0

謝謝你。我之前在另一個問題上看到了這一點,在解決更新函數後,我即將編輯我的代碼 –