gpt4 book ai didi

javascript - 使用 JavaScript 在 HTML 中提交多个表单

转载 作者:搜寻专家 更新时间:2023-10-31 21:26:52 24 4
gpt4 key购买 nike

我对 HTML 和 JavaScript 比较陌生,目前正在修改公司的 osTicket。

我试图通过使用 JavaScript 延迟第二次提交来在同一页面中提交 2 个表单(我知道 HTML 不支持此操作),但我认为我的代码或思维方式有问题。

代码如下:

<script type="text/javascript">
function x() {
setTimeout(function() {
<?php // Just normal validation, checking if has administrator privileges or not
if(!defined('OSTSCPINC') || !$thisstaff || !$thisstaff->canEditTickets() || !$ticket) die('Access Denied');

$info=Format::htmlchars(($errors && $_POST)?$_POST:$ticket->getUpdateInfo());
if ($_POST)
$info['duedate'] = Format::date($cfg->getDateFormat(),
strtotime($info['duedate']));

echo '<form id="reply" action="tickets.php?id=' . $ticket->getId() . '#reply" name="reply1" method="post" enctype="multipart/form-data">';
csrf_token();

echo '<input type="hidden" name="do" value="update">'; // Fields that are mandatory for the form but don't want them to show
echo '<input type="hidden" name="a" value="edit">';
echo '<input type="hidden" name="id" value="' . $ticket->getId() . '">';
echo '<input type="hidden" name="user_id" id="user_id" value="' . $info['user_id'] . '">';
echo '<input type="hidden" name="source" value="' . $info['source'] . '">';
echo '<input type="hidden" name="topicId" value="' . $info['topicId'] . '">';
echo '<input type="hidden" name="slaId" value="' . $info['slaId'] . '">';
echo '</form>';?>
document.forms['reply1'].submit(); // The second form
}, 2000);
}
</script>

<form id="reply" action="tickets.php?id=<?php echo $ticket->getId();?>#reply" name="reply" method="post" enctype="multipart/form-data">
<!-- a lot of code that it is working properly -->

<input class="btn_sm" type='submit' value="<?php echo __('Post Reply');?>" onclick="x()">
</form>

PHP 中的第一个 if 只是为了防止普通用户提交此表单,我以管理权限登录。所有 HTML 和 PHP 都是已经编写好的代码,应该可以正常工作(语法错误除外),我还通过单独提交每个表单进行了测试,并按预期工作。

此外,第一个表单正常提交没有错误,但第二个表单似乎没有执行。我愿意改进代码和建议,谢谢!

最佳答案

在 jQuery 中

$('form').submit(function(e){ // on a form submit
e.preventDefault(); //do not submit
serializedData = $("form").serialize(); //serialise all forms to JSON
$.ajax({
type: "POST",
url: tickets.php,
data: serializedData,
success: function(){
// do on success
},
dataType: json
});
});

没有:

var request = new XMLHttpRequest();
request.open('POST', 'tickets.php', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
var forms = document.getElementsByTagName('form');
var data = JSON.stringify([].slice.call(forms));
request.send(data);

关于javascript - 使用 JavaScript 在 HTML 中提交多个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34809001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com