2013-02-27 51 views
0

我有「創建用戶」的形式,必須檢查用戶名是否已經存在。爲此,我上的按鈕啓動該腳本由一個onclick功能:JQuery發佈單個變量到PHP

$.ajax({ 
type: \"POST\", 
dataType: \"json\", 
url: \"test.php\", 
data: $('input[name=Username]').val(), 
contentType: \"application/json; charset=utf-8\", 
success: function(data){ 
alert('Items added'); 
}, 
error: function(e){ 
console.log(e.message); 
} 
}); 

然而,沒有任何反應,甚至沒有警告,提示更迭! 請幫我看看如何發佈那個單一的變量,以及如何從PHP頁面檢查用戶名的存在的結果。

+3

這些'\「'從哪裏來? – 2013-02-27 16:33:48

+0

從onclick事件中刪除代碼,創建一個函數並從」中刪除轉義「。 – Ghigo 2013-02-27 16:34:55

+0

是否有錯誤消息被記錄到控制檯? – Jrod 2013-02-27 16:35:33

回答

2

data關鍵需要value這是一個對象,像這樣:

data: {username: $('input[name=Username]').val())}, 

這樣,崗位價值username將被創建。

1

您需要將變量分配給可在$_POST調用引用一個項目:

$.ajax({ 
    type: "POST", 
    url: "test.php", 
    data: {user:$('input[name=Username]').val()}, 
    success: function(data){ 
     alert('Items added'); 
    }, 
    error: function(e){ 
     console.log(e.message); 
    } 
}); 

然後在test.php,只是檢索$_POST['user']

編輯 - 我刪除了contentType(感謝火箭)。我也刪除具體的數據類型,因爲你並不需要做的,如果你正確設置頁眉上test.php

header('Content-type: application/json'); 
+0

丟失'contentType',這裏不正確。 – 2013-02-27 16:36:52

+0

removedTypete ',它只是從複製/粘貼中刪除'dataType:json',並告知如何正確設置test.php的頭文件 – PlantTheIdea 2013-02-27 16:39:46

+0

保留'dataType:'json''很好,以防萬一。 – 2013-02-27 16:41:23

2
  1. 不要逃避JS的隨機位。擺脫\ s
  2. 如果您使用標準表單MIME類型進行格式化,而不是僅發送單個原始字符串,則處理提交的數據要容易得多。 data: { keyName: $('input[name=Username]').val() }
  3. 您未發送JSON文本。擺脫contentType: etc etc。 (留下它可能會導致PHP「這不是表格數據,我不能用它填充$_POST」)。讓jQuery確定它發送的內容類型。

然後你可以在你的PHP中訪問$_POST['keyName']