0

我正在寻找一种非常简单的方法来从所有输入元素(以及一些分隔符)中获取所有值,然后使用已经准备好的提交函数快速将它们发送到 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=\"" ...,而是使用 $values['firstValName']在此示例中将是第三个值的名称(虽然我不知道该怎么做)

或者也许有一种更简单的方法来完成我想要做的事情。关于如何以一种很好的方式实现这段代码的任何想法?

更新:

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

我将不胜感激答案中的一些代码或伪代码,它们显示了一种使用所有值创建文件名的简单方法

如果有人不明白我在问什么或需要一些澄清,那么他们应该随时在下面发表评论,以便我可以尝试让自己清楚。

4

1 回答 1

3

由于您使用的是 jQuery,因此您可以将其 AJAX 方法与serialize()应用于整个表单。您可以单击此处阅读有关它的文档。您还可以通过单击此处此处此处来阅读有关 jQuery 的 AJAX 方法的文档。

应您的要求,这是一个非常简单的示例:

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

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

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

编辑:

没有必要有一个表格。你可以用上面的 serializeArray() 做你想做的事情,除了 (a) $(':input') 没有选择任何东西和 (b) 你应该使用 serialize() 而不是 serializeArray()。因此,如果没有表单,代码将如下所示:

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

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

于 2012-07-09T00:32:53.210 回答