当表单通过jquery提交时,PHP中的isset验证失败



在我通过jQuery提交表单后,我的if(isset(验证返回false,但在没有jQuery的情况下可以正常工作。我使用jQuery的原因是我需要提交多个表单:

按钮

<input class="btn btn-primary" type ="submit" id="myButton" 
name="create_record" value="Submit 1">

jQuery:

<script>
$(document).ready(function () {
$("#myButton").click(function (event) {
event.preventDefault();
$("#form1").submit();
//       $("#form2").submit();
});
});
</script>

PHP

<?php
if(isset($_POST['create_record'])){
$ecode = $_POST['ecode'];
$ename = $_POST['ename'];
$date = $_POST['date'];
$jobRole = $_POST['jobRole'];
}else{
echo "did not receive anything";
}
?>

总是得到"没有收到任何东西"。有人能帮忙吗。

只有在以传统方式单击按钮提交表单时,才会发送提交按钮值。由于您是通过javascript提交表单的,因此需要显式地包含提交按钮的值,或者以其他方式验证您的帖子数据。如果你需要点击的特定按钮的值,这样的东西应该可以工作:

$("#myButton").click(function (event) {
event.preventDefault();
var el = '<input type="hidden" name="' + $(this).prop('name') + '" value="' + $(this).val() + '">';
$("#form1").append(el).submit();
});

至于您同时提交多个表单的目标,我认为如果不使用这里讨论的ajax是不可能的。如果你需要如何做到这一点的指导,最好提出一个新的问题。

您的代码isset($_POST['create_record'](可能为false,或者它没有接收到任何值。如果查询和jQuery只在一个PHP文件中,则需要首先检查算法或使用var_dump((进行测试。其次,如果它不起作用,就为它制定一个替代解决方案。在使用表单时使用正确的HTML代码,或者制作另一个PHP文件,仅用于接收邮件。

<form action="directory_to_another_file" method="POST">
<!-- SOME INPUTS HERE -->
<input type="submit" value="Submit 1" name="create_record">
</form>

尝试测试您的所有代码。

您必须将表单方法设置为"POST"类型,如果您想在同一页面中接收表单数据,则清空"action"键,否则将提供目标链接。

<?php 
if(isset($_POST['create_record'])){
print_r($_POST);
}
?>

<form action="" method="POST" id="form1">
<input type="text" name="create_record" value="Submit 1"/>
</form>
<a href="#" id="myButton"> Submit </a>
<script>
$(function(){
$("#myButton").click(function (event) {
event.preventDefault();
$("#form1").submit();
});
})
</script>

如果对你有用,请告诉我。

最新更新