首先:我能够通过AJAX成功将 1数组传递给PHP:
// Basic HTML Form
// (with sample inputs & values)
// ------------------------------
<form method="post" id="unitDataForm" >
<!-- sample 1 -->
<input type="text" name="seqImg[]" value="111" />
<textarea name="seqDesc[]" />sample 1</textarea>
<!-- sample 2 -->
<input type="text" name="seqImg[]" value="222" />
<textarea name="seqDesc[]" />sample 2</textarea>
</form>
// Script for sending a single array
// ---------------------------------
var seqImg = new Array();
$('input[name="seqImg[]"]').each( function() {
seqImg.push($(this).val());
} );
$.ajax({
type: 'POST',
url: 'test_form_process2.php',
data: {seqImg:seqImg},
cache: false,
async: false
})
// The PHP...
// -----------------
//...config with $dbc...validation & error testing...
if(!empty($_POST["seqImg"])) {
$seqImgs = $_POST['seqImg'];
$seqArray = $seqImgs;
$sql= "INSERT INTO unit_test(`unit_id`,`seq_img`) VALUES ";
$i=0;
$seqArray_count = count($seqArray);
foreach($seqImgs as $seqImg) {
$seqImg = mysqli_real_escape_string($dbc, $seqImg);
$end = ($i == $seqImgs_count-1) ? ';' : ',';
$sql .= "('".$unit_id1."','".$seqImg."')".$end;
$i++;
以上工作正常(参见jsFiddle)......除了......我也想通过此POST中的seq_desc []提交。我已经尝试了一些我发现的例子,但我不是100%如何在ajax &amp;中submit/attach
然后foreach
php 中的附加数组。
// added the seqDesc input
var seqDesc = new Array();
$('textarea[name="seqDesc[]"]').each( function() {
seqDesc.push($(this).val());
} );
// and updated the ajax data to:
data: {seqImg:seqImg,seqDesc:seqDesc},
// The php
// --------
// added
$seqDesc=$_POST['seqDesc'];
$seqArray = array_combine($seqImgs,$seqDescs);
foreach($seqArray as $seqImg=>$seqDesc) {
目前,我在控制台中获得[]
...
答案 0 :(得分:0)
事实证明,所有提交/接收编码在上面都正常工作。问题出在我的LOGIC(if / else)声明中......
在控制台日志中看到[]
,我意识到我的php中的if(!empty){}else{}
逻辑恰好是倒退的。我只需将if(!empty)...
转回if(empty)....
if(empty($_POST["seqImg"])
&& empty($_POST['seqDesc']) ) { }else {