从输入获取值并将它们发送到php文件的简洁方法

时间:2012-07-09 00:20:34

标签: php jquery html ajax

我正在寻找一种非常简单的方法来获取所有输入元素(以及一些分隔符)的所有值,然后使用已准备好的提交函数快速将它们发送到PHP文件。

我提出了一个非常粗略的解决方案,但需要进行大量优化。

现在,当我点击提交按钮时,我会调用一个函数

function $('#submit').click(function(){

var $divValues = new Array();
$divValues[0] = $('#divName').html();
$divtValues[1] = $('#divImgName').html();

var $values;
$values = $(':input').serializeArray();

$fileName = "php.php?firstVal=\""+$divValues[0]+"\"&secondVal=\""+$divtValues[1]+"\"&thirdVal=\""+$values['firstValName']+"\"&ect..." 

//then i simply call the ajax function which will send the information to the php file
fetch($fileName);    
});

也许我可以使用以下事实:我的关联数组中的值的名称和我的php文件中检索的变量的名称匹配,而不是将我的文件名设置为..."&thirdVal=\"" ...我会改为使用{的名称{1}}在这个例子中它将是第三个值(虽然我不知道该怎么做)

或者可能有更简单的方法来实现我想要的东西。 关于如何以一种很好的方式实现这段代码的任何想法?

更新

现在我的html中没有表单元素,但只要我看到一个解决方案需要它来使代码更简单,我就可以轻松添加一个... 我知道我可以使用serialize()函数,但我的问题是处理返回的数组的一种很好的方法。 (或者可能使用2个数组,其中一个名称为其他值或二维数组) 无论哪种方式,我只是希望看到什么是获取数据和使用正确的PHP文件值创建$values['firstValName']的简单方法

我很感激答案中的一些代码或伪代码,它们显示了使用所有值创建fileName的简单方法

如果有人不明白我的要求或需要一些澄清,那么他们应该在下面发表评论,我可以试着让自己明白。

1 个答案:

答案 0 :(得分:3)

由于您正在使用jQuery,因此您可以将其AJAX方法与serialize()一起应用于整个表单。您可以通过clicking here阅读有关它的文档。您还可以通过clicking hereherehere阅读有关jQuery的AJAX方法的文档。

根据您的要求,这是一个非常简单的例子:

$.post("test.php", $("#testform").serialize());

您可以从我引用的文档中获得有关如何使用$ .post或$ .get函数所需的其他内容。

Serialize还负责对所有变量进行urlencoding,因此您不必担心这一点。

修改

没有必要有表格。您可以使用上面的serializeArray()执行您要执行的操作,除了(a)$(':input')不选择任何内容和(b)您应该使用serialize()而不是serializeArray()。因此,如果没有表单,代码将如下所示:

$.post("test.php", $("input,select,textarea").serialize());

这将正确地请求脚本正确编码数据,然后您可以在PHP脚本中从$ _POST或$ _GET中读取它,具体取决于您是使用$ .post还是$ .get来请求脚本。