我有一个表格,我可以在其中克隆表格行。每个表单元素都被命名为一个数组,名称后带有 []。如果我将表单直接发送到 PHP 脚本,这没什么大不了的。我不想刷新,所以我需要将值存储在 javascript 数组中,然后将该数组发送到我的 php 脚本等。我很难创建一个新的 javascript 变量,它是所有值的数组。
一个是完整的我确信在 PHP 中请求它是非常简单的。
这是我的 HTML 表单的示例。
<form class="form8" name="formfine">
<table class="tablesorter2" cellspacing="0" id="adddate">
<tbody>
<tr>
<td>Expense:</td>
<td>
<select id="fineexpense" name='fineexpense[]'>
<option value='Mortage/Rent'>Mortage/Rent</option>
<option value='Auto'>Auto</option>
</select>
</td>
</tr>
</tbody>
</table>
</form>
这是我当前的 AJAX 函数
function ajax_finesave(){
var hr = new XMLHttpRequest();
var url = "PHP/FFfinesave.php";
var fineexpense = document.formfine.elements['fineexpense[]'];
在这方面的任何帮助都会很棒,请求 ajax 发送变量的正确方法也会有所帮助。谢谢
最佳答案
有一种使用 JQuery 的简单方法,即序列化表单。函数是here .
用法是...
$('.form').serialize();
... 结果值是一个查询字符串,可以将其作为单个变量发送到服务器并根据 php 的要求进行剖析,使用类似 parse_str()
的函数
关于 JavaScript 的另一件事是它的数组不能像键控哈希那样使用,正如您在 PHP 中看到的那样。您需要使用一个对象作为键。因此,您将无法在 JavaScript 中创建模仿 php $_POST
数组的数组。
您可以从您的表单构建一个 JSON 对象并使用 AJAX(JQuery 的 version here)发布它,然后使用 php 的 json_decode()
打开它的服务器端。请注意此处的 $assoc
参数,因为您需要用它来获取 php 中的数组。
JQuery 示例如下:
var myJSON = {
formField: $('.form-field').val(),
anotherFormField: $('.another-form-field').val()
}
$.ajax({
url: 'my-url',
method: 'post',
data: {
formJSON: myJSON
},
success: function() {
// success update here
}
});
在示例中,myJSON
是一个带有命名键的 JavaScript 对象,这些键由表单字段值填充(尽管任何内容都可以)。这就是您在 JavaScript 中模仿 php 关联数组的方式。
关于javascript - 将 HTML 数组值存储到 javascript 数组中以通过 AJAX 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623857/