2012-07-11 31 views
3

我想從窗體中使用ajax將值發送到mysql數據庫。我採取的形式的父文章,然後取子元素id爲「電子郵件」,你可以在這裏看到選擇的價值...Javascript發送錯誤的值

var email = $(this).parent("article").children("#email").val() //gets the user's email 

然而,當我將數據發送到PHP文件爲了上傳到mysql數據庫,它似乎在做一些錯誤的事情,而不是存儲在一個函數中的值(如下所示)正在被存儲......這裏發生了什麼!?

function (a) {var c,d,e,g=this[0];{if(!!arguments.... 
+0

所以你檢查了'email'變量的值?你有沒有試過看看實際上發送了螢火蟲? – zerkms 2012-07-11 20:34:07

+0

在發送之前是否正確? – Markedagain 2012-07-11 20:35:18

+0

你的電子郵件字段有一個ID,所以只需使用'$('#email').val()',或者,因爲你確實不需要爲每一件事情使用jQuery,'document.getElementById('email' ).value'。 – Hamish 2012-07-11 20:36:23

回答

1

你可以嘗試find()方法:

的。孩子()方法.find()在。孩子(不同)僅行進的單級下調DOM樹而.find( )可以遍歷多個層次來選擇後代元素(孫輩等)。

var email = $(this).parent("article").find("#email").val() 
+0

謝謝!只要我被允許,我會立即標記你:) – simonthumper 2012-07-11 20:34:29

+0

其實所有的選擇器行都可以用'$('#email')替換' – zerkms 2012-07-11 20:34:37

+0

只是出於興趣,有什麼方法可以像這樣遍歷到文章?或者父母會做這份工作? – simonthumper 2012-07-11 20:35:44

1

似乎有點混亂。你正在使用#email,這意味着一個id,你只能在頁面上有一個id。 jQuery將識別hashtag並默認使用本機「getElementById」瀏覽器方法。

所以這個:

var email = $(this).parent("article").children("#email").val() 

可以轉換爲這樣的:

var email = $("#email").val()