我通过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";
}
?>
总是得到“什么也没收到”。有人可以帮忙吗。
答案 0 :(得分:1)
仅当通过单击按钮以传统方式提交表单时,才会发送“提交”按钮值。由于您是通过javascript提交表单,因此您需要明确包含“提交”按钮的值或以其他方式验证您的帖子数据。如果您需要单击的特定按钮的值,则应执行以下操作:
$("#myButton").click(function (event) {
event.preventDefault();
var el = '<input type="hidden" name="' + $(this).prop('name') + '" value="' + $(this).val() + '">';
$("#form1").append(el).submit();
});
关于您一次提交多个表单的目标,我相信如果不使用here中讨论的Ajax,这是不可能的。如果您需要有关操作方法的指导,最好打开一个新问题。
答案 1 :(得分:0)
您的代码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>
尝试测试所有代码。
答案 2 :(得分:0)
您必须将表单方法设置为“ 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>
让我知道它是否对您有用。