2012-07-11 47 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()