我正在尝试从这种形式构建一个javascript函数:
<form class="responseForm" action="javascript:parseResponse123<?php echo $id; ?>()" id="responseForm<?php echo $id; ?>">
<input name="hiddenField5<?php echo $id; ?>" id="hiddenField5<?php echo $id; ?>" type="hidden" value="<?php echo $id; ?>" />
<input name="hiddenField4<?php echo $id; ?>" type="hidden" id="hiddenField4<?php echo $id; ?>" value="<?php echo $qty; ?>" />
<font color="red"><?php echo $val; ?></font><br />
<?php
$i=1;
while($i<=$qty)
{
?>
Participant <?php echo $i; ?>:<input name="hiddenField2[]" id="hiddenField2" type="text" /><br />
<?php $i++;
}
?>
<input name="submit" type="submit" value="Submit" />
</form>
参与者输入字段(hiddenfield2)可以是相同名称和id的字段中的1个或更多字段。
然后我将此代码提交到php页面:
function parseResponse123<?php echo $id; ?> ()
{
var hiddenField2<?php echo $id; ?> = $("#hiddenField2<?php echo $id; ?>");
var hiddenField4<?php echo $id; ?> = $("#hiddenField4<?php echo $id; ?>");
var hiddenField5<?php echo $id; ?> = $("#hiddenField5<?php echo $id; ?>");
var hiddenField1<?php echo $id; ?> = $("#hiddenField1<?php echo $id; ?>");
var url = "insert.php";
$.post(url,{ hiddenField2: $('[name="hiddenField2<?php echo $id; ?>[]"]').serialize(),hiddenField: hiddenField5<?php echo $id; ?>.val(), hiddenField1:hiddenField1<?php echo $id; ?>.val(), hiddenField4:hiddenField4<?php echo $id; ?>.val() } ,
function(data) {
});
setTimeout(function() {
$.ajax({
type:"POST",
data:"getNews=true",
success: function(r){
$("#newsContent").html(r);
},
error: function(){
alert($(".hiddenField2<?php echo $id; ?>").val());
$("#error").text($(".hiddenField2<?php echo $id; ?>")).fadeIn(300)
}
})
},200);
}
请忽略其中的所有回声ID,它们在未来的使用中比任何东西都多。我需要帮助使用javascript为hiddenField2形成数组,然后将其提交到insert.php,然后如何解码数组,以便php可以使用foreach循环。对此有何帮助?
答案 0 :(得分:0)
您应该查看jQuery Serialize函数:
http://api.jquery.com/serialize/
$.ajax({
type:"POST",
data: $("#form-id").serialize(),
success: function(r){
// do something here after success
});
编辑:详述
我没有测试过,但你可以做这样的事情
<form class="responseForm" action="">
<input name="formData[id]" type="hidden" value="<?php echo $id; ?>" />
<input name="formData[qty]" type="hidden" value="<?php echo $qty; ?>" />
<font color="red"><?php echo $val; ?></font><br />
<?php
$i=1;
while($i<=$qty)
{
?>
Participant <?php echo $i; ?>:<input name="formData[participants][]" type="text" /><br />
<?php $i++;
}
?>
<input name="submit" type="submit" value="Submit" />
</form>
将此内容用于javascript
<script>
$("form.responseForm").submit(function(e){
e.preventDefault();
var formData = $(this).serialize();
$.ajax({
url : '/insert.php', // assuming from root of your domain dir
type:"POST",
data: formData,
success: function(response){
$("#newsContent").html(response);
},
error: function(){
}
});
});
</script>
和你的insert.php
<?php
$formData = $_POST['formData']; // an array of the form
foreach($formData['participants'] as $participant){
// do something
}
?>