我需要帮助我有下面的HTML表单字段,我希望他们被发送到一个PHP页面的个人PHP数组。
HTML
<input class="form-control" type="date" onchange="reportSave()" name="testreportname[]">
<input class="form-control" type="date" onchange="reportSave()" name="testreportdate[]">
<input class="form-control" type="date" onchange="reportSave()" name="testreportissue[]">
JavaScript
<script>
function reportSave() {
//Test Report Name
//get the data from test report name
var testreport=document.getElementsByName('testreportname[]');
var testreportdate=document.getElementsByName('testreportdate[]');
var testreportissue=document.getElementsByName('testreportissue[]');
var data1 = $(this).serializeArray();
//for each item in the array
for(key=0; key < testreport.length; key++) {
data1.push({
testreport: $("#testreport").val(), testreportdate: $("#testreportdate").val(), testreportissue: $("#testreportissue").val(),
});
console.log("key: ", key)
console.log(testreport)
}
//send to PHP via ajax
$.ajax({
type: "post",
url: "draftsave.php",
dataType: "json",
data: data1,
success: function(result) {
console.log(result)
}
});
}
</script>
PHP
<?php
$stestreport=$_POST['testreport'];
$stestreportdate=$_POST['testreportdate'];
$stestreportissue=$_POST['testreportissue'];
for($i=0;$i<count($stestreport);$i++)
{ code here, etc};
?>
编辑,删除已尝试的代码。
1条答案
按热度按时间lhcgjxsq1#
jQuery提供了
serialize()
函数,它提供了一种非常简单的方法来从表单或特定的字段集合中获取所有数据,并将它们转换为form-url编码格式,如果您提交了常规表单(没有 AJAX ),它们通常会被传输。这是PHP识别的格式,并将自动转换为$_POST
数组中的数据。这个小演示展示了
a)serialize()输出什么
B)使用类名选择您感兴趣的特定字段的方法(注意HTML中每个输入字段上的额外类)
c)一种更好的方式来处理“change”事件,使用选择器,而不是用
onchange
属性乱丢HTML。因此,如果你想在 AJAX 中使用它,你最终会得到这样的结果: