更新II
$("#form").submit(function(event){
event.preventDefault();
var $form = $( this ),
url = $form.attr( 'action' );
var posting = $.post( url, {
id: $('#id').val(),
name: $('#name').val(),
wname: $('#wname').val(),
xcor: $('#xcor').val(),
ycor: $('#ycor').val(),
xwid: $('#xwid').val(),
yhei: $('#yhei').val(),
photo: $('#photo').val(),
targeturl: $('#targeturl').val()
});
posting.done(function( data ){
alert('success');
});
});
更新
这不管用..。未触发alert('nice');
$("#form").submit(function(e){
var postData = $(this).seralizeArray();
var formURL = $(this).attr("action");
$.ajax({
url : formURL,
type : "POST",
data : postData
});
e.preventDefault();
e.unbind();
});
$("#form").submit();
alert('nice');
我的目标是通过ajax发送带有表单的数据,页面不刷新。
我不使用按钮,提交是由触发ajax的javascript函数触发的。
已序列化的数据遵循
name=name$email=email
等..。
我不知道该怎么处理这条绳子
这就是我在发送页面上的内容。
var frm = $('#form');
var formData = $('#form').serialize();
frm.submit(function (ev) {
$.ajax({
type: frm.attr('method'),
data: formData,
url: frm.attr('action'),
success: function (data) {
alert('successful update');
}
});
ev.preventDefault();
});
序列化的数据是否附加到URL中?我的意思是,我意识到,在提交当前页面不去任何地方,所以这将如何工作到行动页“看到网址,并拉动它”可以说.
我的操作页面是用同一页上的一个按钮提交的表单的陈词滥调设计,主要是变量的声明,然后是插入行。
if($_SERVER['REQUEST_METHOD']=='POST'){
$name = $_POST['name'];
$email= $_POST['email'];
$link = new mysqli("$servername", "$username", "$password", "$dbname");
$stmt = mysqli_prepare($link, "INSERT INTO table VALUES(?,?)");
$stmt->bind_param('ss',$name,$email);
$stmt->execute();
如果这显然是错误的,我很抱歉,我以前没有使用过序列化表单数据提交
发布于 2015-02-25 21:28:16
假设表单方法frm.attr('method')
是POST,序列化的数据不会放在URL中,而是放在HTTP正文中。
如果表单方法是GET,那么数据将被追加到URL的末尾,如:http://yoursite.com/yourrequestpage?name=yourname&email=youremail
如果您正在使用GET方法,那么在PHP方面,您将不得不使用$_GET['email']
而不是$_POST['email']
。
我还看到var formData = $('#form').serialize();
不在表单提交函数体之外。这应该放在正文中,以便在提交表单时(当您填写表单时)初始化,而不是在加载页面时(当您尚未与表单交互时)初始化。
https://stackoverflow.com/questions/28734892
复制