[英]send dynamically created form with jquery
....... while(mysql_fetch_array($loop))
{..............
echo '
<form name="myform" method="POST" action="reply.php">
<textarea style="width:400px;" name="text'.$idanswer.'" id="text'.$idanswer.'"></ textarea>
<input type="submit" name="submit'.$idanswer.'" id="submit'.$idanswer.'" value="Submit">
<input type="hidden" name="idquest" id="idquest" value="'. $question_id .'">
<input type="hidden" name="idansw" id="idansw" value="'. $idanswer .'">
<input type="hidden" name="idsend" id="idsend" value="'. $logOptions_id .'">
<input type="hidden" name="namer" id="namer" value="'. $usr .'">
</form>';
}
效果很好。 但是我想用jquery發送此表單而不刷新頁面,而且我不知道如何在函數中傳遞變量。
我需要這樣的東西:
<script type="text/javascript">
$(document).ready(function() {
$('submit'.$idanswer.'').click(function (e) {
e.preventDefault();
var dataString = 'text'.$idanswer.'=' + $('#text'.$idanswer.'').val() + '&idquest=' + $("#idquest").val() + '&idansw=' + $("#idansw").val() + '&idsend=' + $("#idsend").val() + '&namer=' + $("#namer").val();
jQuery.ajax({
type: "POST",
url: "reply.php",
data:dataString,
success:function(response){
$("#respond").prepend(response);
$('#text'.$idanswer.'').val('');
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});
});
</script>
由於變量,這不起作用。 任何想法?
您需要回顯您的php變量
var dataString = 'text <?= $idanswer ?>=' + $('#text<?= $idanswer ?>').val() +&idquest=' + $("#idquest").val() + '&idansw=' + $("#idansw").val() + '&idsend=' + $("#idsend").val() + '&namer=' + $("#namer").val();
只需將每個$phpvar
更改為<?= $phpvar; ?>
<?= $phpvar; ?>
或<?php echo $phpvar; ?>
<?php echo $phpvar; ?>
Php不能與Js混合,但可以嵌入;
這是錯誤的:
$('submit'.$idanswer.'')
右邊是:
$('submit <?= $idanswer ?>')
要么
$('submit <?php echo $idanswer; ?>')
給每個表單一個唯一的id
,將提交按鈕更改為普通按鈕input="button"
這樣它就不會在單擊時提交表單,並向按鈕添加onclick
屬性,如下所示:
<form name="myform" id="form'.$idanswer.'" method="POST" action="reply.php">
<input type="button" class="submit" name="submit'.$idanswer.'" id="submit'.$idanswer.'" value="Submit" onClick="submitForm(\'form'.$idanswer.'\')" />
創建一個ajax函數並使用serialize()
方法從每種表單中獲取參數,該方法將獲取所有表單輸入值,而不是手動添加每個表單輸入值:
$(document).ready(function() {
function submitForm(form){
jQuery.ajax({
type: "POST",
url: "reply.php",
data: $('#' + form).serialize(),
success:function(response){
$("#respond").prepend(response);
$('#text'.$idanswer.'').val('');
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.