2011-10-06 174 views
0

爲了節省我對我的代碼的其餘部分進行大量的編輯,我想讓複選框像文本框一樣工作。是否可以檢查複選框是否在其值中打勾?

我有以下文本框,如果一個數字大於0,那麼它將項目添加到籃子。

<input type="textbox" 
     value="<? echo $item[qty]; ?>" 
     name="<? echo $productid."_".$product_quantity[id]."_".$product_option[id]; ?>" 
/> 

我該如何使複選框的行爲方式相同?也就是說,如果打勾,它的值等於1,因此將其添加到我的購物籃中。如果它仍然未被選中,那麼它的值等於0,因此被忽略。

<input type="checkbox" 
     value="<? echo $item[qty]; ?>" 
     name="<? echo $productid."_".$product_quantity[id]."_".$product_option[id]; ?>" 
/> 

我有幾個這些複選框會在頁面上。

+0

哪個事件要檢查嗎? – Astha

+0

@Astha剛剛更新了問題。 – Rob

+0

我不確定你的意思是...當$ item ['qty']等於true時,你想輸出1嗎?在這種情況下: etc etc /> –

回答

0

變化從value="<? echo $item[qty]; ?>"value="1"

價值在你的行動形成即wishlist.php:

if(isset($_POST["name_of_checkbox"])) { 
    //It means check box has been ticked 
    $myvalue = 1; 
} else { 
    //It means check box was not ticked 
    $myvalue = 0; 
} 

HTH


這是另一種方法的問題,也許這是你需要的。

我會介紹一個隱藏字段,它將存儲/張貼0或1的值。我們將綁定一個事件,該複選框將更新隱藏輸入的值。

<input name="my_cb" id="my_cb" type="checkbox" value="1" /> 
<input type="hidden" name="my_cb_hidden" id="my_cb_hidden" value="" /> 

<script type="text/javascript"> 
$("#my_cb").click(function() { 
    if($("#my_cb").is(":checked")){ 
     $("#my_cb_hidden").val($(this).val()); 
    } else { 
     $("#my_cb_hidden").val(0);  
    } 
    alert($("#my_cb_hidden").val());  
}); 

+0

剛剛更新了我的問題,使其更清晰,請參閱更新位 – Rob

+0

通過php做它是不可能的,因爲PHP呈現服務器端,並且用戶不能打勾或不勾選該階段的複選框。我可以建議的另一個選項是使用JavaScript更改值。 –

+0

只要它像我提供的示例一樣工作,它是如何實現的並不重要。 – Rob

0

你可以從

value="<? echo $item[qty]; ?>" 

複選框值的值更改爲

value="1" 

那麼如果檢查然後提交它會自動保存1作爲一種價值

編輯:

在PHP代碼提交後做它,你更新你的問題

if(isset($_POST['checkbox name'])) 
{ 
    $item[qty] = 1; 
} 
else 
{ 
    $item[qty] = 0; 
} 

但這隻會使價值的複選框保持的$項目陣列的價值inspite的變化。

+0

但是,這意味着無論是否打勾,它總是1。如果打勾,我希望它顯示1,如果不打勾,則顯示0。 – Rob

+0

看看它的唯一複選框是否有這個名字,然後提交表格時,如果它的勾號只有你會得到它在$ _POST或$ _GET,否則如果它沒有檢查,那麼你將不會從這個名字得到任何價值,那麼你可以手動分配0,因爲那意味着它沒有被檢查。 – Astha

+0

剛剛更新了我的問題,使其更清楚,請參閱更新位。 – Rob

相關問題