2015-07-12 26 views
12

Wie wird Wert 1 übergeben, wenn ein Kontrollkästchen in einem Kontrollkästchen aktiviert ist, und 0 senden, wenn es deaktiviert ist? Ich habe das versucht, aber kein Glück. Ich versuche, dieses Array in einem PHP-Array zu greifen, wenn das Formular übermittelt wird. Bitte helfen Sie!So reichen Sie 0 ein, wenn das Kontrollkästchen deaktiviert ist, und 1 senden, wenn das Kontrollkästchen in HTML aktiviert ist

<input id = 'testName0' type = 'checkbox' name = 'check[0]' value = '1' checked> 
<input id='testNameHidden0' type='hidden' value='0' name='check[0]'> 

<input id = 'testName1' type = 'checkbox' name='check[1]' value = '1' unchekced> 
<input id='testNameHidden1' type='hidden' value='0' name='check[1]'> 

<input type = 'submit' value = 'Save Changes'> 
> 
<script> 
if(document.getElementById('testName0').checked){ 
    document.getElementById('testNameHidden0').disabled = true; 
} 
</script> 

<script> 
if(document.getElementById('testName1').checked){ 
    document.getElementById('testNameHidden1').disabled = true; 
} 
</script> 

Antwort

29

Einfachsten, kein JavaScript erforderlich, setzen Sie einfach einen versteckten Eingang vor der Checkbox:

<input type="hidden" name="check[0]" value="0" /> 
<input type="checkbox" name="check[0]" value="1" /> 

Eingänge müssen den gleichen Namen haben. Wenn das Kontrollkästchen aktiviert ist, wird der Wert 1 übergeben, andernfalls der Wert 0 aus dem ausgeblendeten Eingang.

Ihr Fall JavaScript-Lösung, keine versteckten Eingänge benötigt:

<script type="text/javascript"> 
    // when page is ready 
    $(document).ready(function() { 
     // on form submit 
     $("#form").on('submit', function() { 
      // to each unchecked checkbox 
      $(this + 'input[type=checkbox]:not(:checked)').each(function() { 
       // set value 0 and check it 
       $(this).attr('checked', true).val(0); 
      }); 
     }) 
    }) 
</script> 

<form method="post" id="form"> 
    <input type="checkbox" name="check[0]" value="1" /> 
    <input type="checkbox" name="check[1]" value="1" /> 
    <input type="submit" value="Save Changes" /> 
</form> 

PHP-Lösung, keine benötigt versteckte Eingänge:

<?php 
    // if data is posted, set value to 1, else to 0 
    $check_0 = isset($_POST['check'][0]) ? 1 : 0; 
    $check_1 = isset($_POST['check'][1]) ? 1 : 0; 
?> 

<form method="post"> 
    <input type="checkbox" name="check[0]" value="1" /> 
    <input type="checkbox" name="check[1]" value="1" /> 
    <input type="submit" value="Save Changes" /> 
</form> 
+0

hmm Ihre Lösung danke –

+0

bro gearbeitet, aber was ist das Prob mit diesem Javascript? –

+0

Es gibt wirklich keine Notwendigkeit, Javascript für solch eine einfache Aufgabe zu verwenden. Aber ich habe meine Antwort bearbeitet, um Javascript und php Lösung auch einzuschließen. – JungleZombie

Verwandte Themen