2013-02-13 31 views
0

我有一個複選框表:獲取無頁面複選框值刷新

<td><input id="box" name="box" type="checkbox" value="1" checked /></td> 
<td><input id="box" name="box" type="checkbox" value="2" checked /></td> 
<td><input id="box" name="box" type="checkbox" value="3" checked /></td> 

我要提交複選框值當我檢查或取消勾選複選框(每一次一個)無刷新的頁面:

if (isset($_GET['box'])) { 
    echo "Success!" 
} 

到目前爲止,我得到這個JavaScript代碼以檢查框是否被選中或取消選中:

function validate(){ 
if (document.getElementById('box').checked){ 
    alert("checked") ; 
}else{ 
    alert("You didn't check it! Let me check it for you.") 
} 
} 

我想在其上添加AJAX,但到目前爲止我嘗試的所有代碼段代碼都不適合我的代碼。我會感謝你的幫助。

+2

不幸的是,這並不簡單。瞭解Ajax,然後使用複雜的庫方法將其寫成* short *。 – Bergi 2013-02-13 16:30:51

+0

到目前爲止你有一些JavaScript嗎? – 2013-02-13 16:30:55

+0

AJAX ............ – hjpotter92 2013-02-13 16:31:01

回答

5

你想使用AJAX。這裏是沒有AJAX jQuery中的例子:

<td><input id="box1" class="box" name="box1" type="checkbox" value="1" checked /></td> 
<td><input id="box2" class="box" name="box2" type="checkbox" value="2" checked /></td> 
<td><input id="box3" class="box" name="box3" type="checkbox" value="3" checked /></td> 

的JavaScript:

$(document).ready(function() { 
    $('.box').on('change', function(event) { 
    var checkbox = $(event.target); 
    var isChecked = $(checkbox).is(':checked'); 
    alert('checkbox ' + checkbox.attr('id') + ' is checked: ' + isChecked); 
    }); 
}); 

演示:http://jsbin.com/ipasud/1/

現在不是做一個alert電話,做了$。員額到後端網址需要一個id和一個選中或未選中的值。例如,

$.post('/submit-checkbox.php', {id: checkbox.attr('id'), value: isChecked}); 

如果我們把那回的代碼,它應該是這樣的:

$(document).ready(function() { 
    $('.box').on('change', function(event) { 
    var checkbox = $(event.target); 
    var isChecked = $(checkbox).is(':checked'); 
    $.post('/whatever-your-url-is.php', {id: checkbox.attr('id'), value: isChecked}); 
    }); 
}); 
+0

好的,我檢查/取消選中時會收到提醒。但是,當我插入$ .post語句時,我得到一個空白屏幕?我想把它放在我的代碼中?哪裏有「獲取」語句的地方? – wizard 2013-02-14 17:46:44

+1

那麼在PHP方面呢?您是否正在偵聽POST或GET以在複選框更改時提交?我用一個例子對它進行了更新,但是您需要將'$ .post'或'$ .get'指向您要在服務器上監聽此數據的任何URL(端點)。使用POST而不是GET來提交數據更正確(這樣做會減少問題)。 – Cymen 2013-02-14 18:04:02

+0

<?php echo''; echo' '; 如果(isset($ _ POST [' BOX1 '])){ \t回聲$ _POST [' BOX1 ']; } 如果(isset($ _ POST [' BOX2' ])) { \t回聲$ _POST [ 'BOX2']; } 回聲​​<輸入的ID = 「BOX1」 類= 「框」 名稱= 「BOX1」 類型= 「複選框」 值= 「1」 檢查/> '; echo'​​'; ?> – wizard 2013-02-14 18:11:15

0

您可以使用jQuery:http://jquery.com/

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#box').click(function(){ 
      var selectedValue = $(this).value(); 
      submitValue(selectedValue); 
     }); 

    }); 

    function submitValue(valueSelected){ 

     var request = $.ajax({ 
       url: URL_OF_YOUR_PHP_FILE, 
       type: "POST", 
       dataType: 'json', 
        data: {value: valueSelected} 
       }); 

     request.done(function(results) { 
      //DO WHAT YOU WANT WITH YOUR RESULTS 
     }); 
    } 
</script> 

然後在你的PHP你可以得到在$ _POST ['value']中選擇的值並返回你想要的(以JSON格式)。