2013-03-25 106 views
0

我试图从我的表单中检索数据,当我发布(提交)数据时。但我对jQuery有一些无知。用jquery/ajax发布数据

今天,我的代码看起来是这样的:

$(function() { 
    $(".apply_up").submit(function(e){  
     $.post("controller/ajax.php", function(data) { 
      alert("Data Loaded: " + data); 
     }); 
    }); 
}); 

这是我的HTML:

<form name="Apply" class="apply_up" method="Post"> 
    <input type="image" src="img/t_up.png" id="ajax" name="t_up" value="1 "> 
</form> 

我想拿起值= “1”

+0

只需使用普通的jQuery选择像'$( “#AJAX”)ATTR( “值”) ' – 23tux 2013-03-25 10:54:32

+0

对于'value',最好使用'val()'。另外,为了代码的长久性,最好使用'prop()'。 – BenM 2013-03-25 10:55:00

+0

回答代码plz :) – 2013-03-25 10:57:29

回答

1

您需要访问值,然后通过它:

$(".apply_up").submit(function(e){  
    var the_val = $('#ajax').val(); 
    $.post("controller/ajax.php", { 'value': the_val }, function(data) { 
     alert("Data Loaded: " + data); 
    }); 
}); 
+0

#ajax是什么id? – 2013-03-25 10:59:04

+1

'input'元素... – BenM 2013-03-25 10:59:24

0

和使用序列化()..如果你有很多领域表单中的

HTML

<form name="Apply" id="apply" class="apply_up" method="Post"> 
... 

jQuery的

$(".apply_up").submit(function(e){  
    $.post("controller/ajax.php",$(this).serialize(), function(data) { 
    ... 

    //OR 
    $.post("controller/ajax.php",$("#apply").serialize(), function(data) { 
     alert("Data Loaded: " + data); 
    }); 
}); 
+0

我可能会试图推荐'$(this).serialize()'来处理OP的情况。 – BenM 2013-03-25 11:01:03

+0

yup ... :) ..更新... – bipen 2013-03-25 11:02:02

0

对于大多数形式的妥善解决:

HTML

<form action="controller/ajax.php" name="Apply" class="apply_up" method="Post"> 
    <input type="image" src="img/t_up.png" id="ajax" name="t_up" value="1 "> 
</form> 

JS

$(".apply_up").on('submit', function(e){ 
    e.preventDefault(); 

    var formAction = this.action, 
     formData = $(this).serialize(); 

    $.post(formAction, formData, function(data) { 
     alert("Data Loaded: " + data); 
    }); 
}); 
+0

不一定。 POST请求具有最大大小,并且从长远来看发送多余数据可能是昂贵的。 – BenM 2013-03-25 11:01:51

+0

这是我的回答或OP已删除的评论的问题吗? – Simon 2013-03-25 11:19:22

+0

这是OP的评论,他被删除。对困惑感到抱歉。 – BenM 2013-03-25 11:20:54

1

尝试像这样的:

$(".apply_up").submit(function(e){ 
    e.preventDefault(); 
    var imgVal = $('#ajax').val(); 
    $.post("controller/ajax.php", {value : imgVal}, function(data) { 
     alert("Data Loaded: " + data.value); 
    }, "json"); 
}); 
+0

这与我的回答有什么不同? – BenM 2013-03-25 11:02:51

+1

不是很多,但你错过了我想停止表单提交。 – Jai 2013-03-25 11:03:47

+0

OP没有包含它,所以你不知道它是必需的;) – BenM 2013-03-25 11:04:26