2012-12-20 92 views
4

我有一个从MySQL数据库填充的可变大小(长度)的表单。有4个字段组成用于创建按钮的信息(ID,按钮#,名称和价格)。提交表单时,我想将所有值保存到MySQl数据库中,并使用成功消息更新页面底部的div。因为我已经使用像我所有的其他网页...传递可变大小的形式

xmlhttp.open("GET","myfile.php?a="+val1+"&b="+val2+"&c="+val3+"&d="+val4,true); 
xmlhttp.send(); 

的PHP文件保存数据,并为DIV生成的消息。 和写入到div ...

document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 

这个工作做好了我的所有其他的网页,但因为我不知道有多少领域会有我不能硬编码xmlhttp.open声明。

我是新来的ajax和jQuery,并知道必须有一种方法来轻松做到这一点,但我一直无法得到任何工作。有人告诉我,我可以用这个

$.each($('#yourform').serializeArray(), function() { console.log(" <" +this.name+ '>' + this.value + "</" + this.name + "> "); }); 

和它打印出每个表单元素,但不知道如何得到这个信息到我的PHP文件,以及如何产生的股利回报消息。再次,我对ajax和jquery很陌生,所以如果我能得到一些解释,我相信它会帮助我解决这个问题。

+2

鉴于它是一个数据库和一个动态的数值,我建议切换到一个POST提交(GET有一个字符限制)。其次,jQuery有一个['.serialize()'](http://api.jquery.com/serialize/)方法,可以用来对付表单并传递给AJAX调用的'data'属性(也可以希望使用'$ .ajax'来保存一些令人头痛的事情,除非你真的喜欢xmlhttp对象)。 –

+0

与OP的上一个问题[here](http://stackoverflow.com/questions/13974462/passing-variable-sized-form)相关。 – halfer

回答

1

希望这有助于:

$('form').submit(function() { 
    $.post("myfile.php", $(this).serialize(), function(response) { 
     console.log(response); 
    }); 
}); 
+0

之后,我的头撞在这一个仍然不工作......任何人都知道一个很好的教程网站呢? –

+0

我可以说的唯一的事情就是尝试发布你拥有的东西?也许社区中的某个人可以修正代码或指出错误。 – Kenn

0

您可以指定变量名,像A00至A99,B00至被发送到服务器的POST请求B99等。然后只需在服务器端检查已设置的值,然后相应地处理。

这有点粗糙,但它应该工作。

1

这样的事情呢? http://jsfiddle.net/r0k3t/e6W3Z/,你可以看到你可以添加任意数量的字段,它们都会被转储到qString中。

$('#yourform').submit(function() { 
    var qString = ""; 
    $('#yourform input[type=text]').each(function() { 
     qString += $(this).attr("id") + "=" + $(this).val() + "?"; 
    }); 
    console.log(qString); 
    return false; 
}); 

从你的问题是,似乎是因为你这样做,其他地方你可以抓住按钮的值。一旦您对查询字符串感到满意,您可以像Joe Brown所建议的那样使用.post。