一种从输入中获取值并将其发送到php文件的干净方法


A clean way of obtaining values from inputs and sending them to php file

我正在寻找一种非常简单的方法,可以从所有输入元素(以及一些除法器)中获取所有值,然后快速将它们发送到带有已准备好的提交函数的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()函数,但我的问题是如何处理返回的数组。(或者可以使用两个数组,一个带名称,另一个带值或二维数组)无论哪种方式,我只想看看什么是获得数据和为PHP文件创建具有正确值的$fileName的简单方法

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

如果有人不理解我的要求或需要澄清,他们可以在下面发表评论,这样我就可以试着澄清自己了。

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

为了响应您的请求,这里有一个非常简单的例子:

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

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

Serialize还负责对所有变量进行url编码,所以您不必担心这一点。

编辑:

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

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

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