2017-03-06 44 views
0

我有一個複選框下面的代碼調用PHP VAR/AJAX

<div class="switch switch-lg switch-primary"> 
<input type="checkbox" name="switch" data-plugin-ios-switch checked="checked" value="usersname:1" /> 
</div> 

當我改變複選框,則觸發下列事件

<script> \t \t 
 
$('input[name="switch"]').on('change', function(){ 
 
\t $.ajax({ 
 
\t \t type: 'POST', 
 
\t \t url: 'page.php', 
 
\t \t data: { 
 
\t \t \t example: $('#example').val() 
 
\t \t } 
 
\t }).always(function(data, textStatus, jqXHR) { 
 
\t \t if (data.response == 'success') { 
 
\t \t \t // Success 
 
\t \t } else { 
 
\t \t \t // Error 
 
\t \t } 
 
\t }); 
 
});  
 
</script>

我想知道如何在我的page.php中獲得「usersname:1」的值?我猜這是在example: $('#example').val()左右?

基本上page.php會更新一個值爲1的mysql數據庫,但只針對該用戶,所以我需要以某種方式拉起用戶名:1​​在該腳本部分或page.php中,但不要知道如何稱呼它。

提前致謝!

回答

0

在您的複選框中添加id屬性。您不能在複選框中定義id屬性。

<div class="switch switch-lg switch-primary"> 
<input type="checkbox" id="example" name="switch" data-plugin-ios-switch checked="checked" value="usersname:1" /> 
</div> 

否則,您可以更改example: $('#example').val()example: $(this).val()

+0

非常感謝,這就像一個魅力!!!!我確認了兩個選項都起作用(添加ID或更改示例輸出)。你終於爲我解決了兩天頭痛! – simplyphilip

0

您可以通過$_POST['example']

1

獲得page.php文件example價值。爲了將數據發送到PHP你需要修改你的代碼行: data: { example: $('#example').val() }

發送至:

data: { 
     example: $('#example').val(), 
     switch: $(this).val() 
    } 

代碼最後就變成了:

$('input[name="switch"]').on('change', function(){ 
 
console.log($(this).val()); 
 
\t $.ajax({ 
 
\t \t type: 'POST', 
 
\t \t url: 'page.php', 
 
\t \t data: { 
 
\t \t \t example: $('#example').val(), 
 
     switch: $(this).val() 
 
\t \t } 
 
\t }).always(function(data, textStatus, jqXHR) { 
 
\t \t if (data.response == 'success') { 
 
\t \t \t // Success 
 
\t \t } else { 
 
\t \t \t // Error 
 
\t \t } 
 
\t }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="switch switch-lg switch-primary"> 
 
    <input type="checkbox" name="switch" data-plugin-ios-switch checked="checked" value="usersname:1" /> 
 
    </div>

在PHP中可以使用$ _REQUEST [ '開關']

0

好吧,這是一個棘手的獲得價值。

使用example: $('#example').val()您將傳遞一個輸入的VALUE作爲後var(因此您可以在末尾腳本中使用$ _POST [「示例」]捕獲它)。事情是,任何人都可以將任何東西放入所以編輯其他用戶名。

你應該通過調用用戶ID或相似的東西所以人們不與數據篡改或做一些XSS一個$ _SESSION變量來這樣做。

,如果你想要去與此同時,只需將ID示例放入您的輸入中,它就會工作(或編輯它以匹配您的字段),但我建議找到另一種方式。

+0

謝謝隊友!這一切都在PHP會話中進行,我將在動作頁面上檢查會話變量,但對於其他人卻很好的思考,並且沒有這個設置!謝謝你的幫助! – simplyphilip