php单一提交失败,页面保持不变,数据也没有添加到数据库中。当我单击取消按钮时,我将重定向到新表单,因为它应该工作。
如何让提交工作并将表单数据添加到数据库?下面是php和表单html代码,附上的是表单图片
<div class="form-group">
<label for="s_fname">First name</label> *
<input type="text" class="form-control" placeholder="First name">
<label for="s_lname">Last name</label> *
<input type="text" class="form-control" placeholder="Last name">
<label for="s_mname">Middle name</label>
<input type="text" class="form-control" placeholder="Middle name">
<label for="s_dob">Date of Birth</label> *
<input type="text" class="form-control" placeholder="DD/MM/YYYY">
<label for="g_phone">Phone Number</label> *
<input type="text" class="form-control" placeholder="Phone number">
<label for="g_email">Email</label> *
<input type="text" class="form-control" placeholder="Email address">
<label for="entry_year">Entry level</label> *
<input type="text" class="form-control" placeholder="Entry level">
</div>
<div class="row text-right">
<input type="submit" name="submit" value="Save" class="btn btn-default" />
 
<button type="button" class="btn btn-default" aria-label="Left Align"><a href="new_student.php">Cancel</a></button>
</div>
<?php
if (isset($_POST['submit'])) {
# process the form
$s_fname = $_POST["s_fname"];
$s_lname = $_POST["s_lname"];
$s_mname = $_POST["s_mname"];
$s_dob = $_POST["s_dob"];
$g_phone = $_POST["g_phone"];
$g_email = $_POST["g_email"];
$entry_year = $_POST["entry_year"];
$query = "insert into students (s_fname, s_lname, s_mname, s_dob, g_phone, g_email, entry_year) ";
$query .= "values ('{$s_fname}', '{$s_lname}', '{$s_mname}', {$s_dob}, {$g_phone}, {$g_email}, {$entry_year})";
$result = mysqli_query($connection, $query);
if ($result) {
# successful
redirect_to("student.php");
} else {
# failure
redirect_to("new_student.php");
}
}
?>
答案 0 :(得分:0)
答案 1 :(得分:0)
梅纳 -
我发现此代码存在一些问题:
您在元素中没有此HTML。您将希望将整个包装在一个元素中,并确保将其作为POST而不是GET提交。请在此处查看有关表单的W3C文档:http://www.w3schools.com/html/html_forms.asp
由于Don's Panic提及,您的表单输入字段没有名称,因此不会随表单一起提交。请参阅上面有关输入字段的name属性的链接。
除非你出于安全原因发出它(如果你这样做,请打电话!),你需要一个有效的mysqli连接。有关如何创建连接的说明,请参阅PHP手册:http://php.net/manual/en/function.mysqli-connect.php
最后,你重定向到student.php或new_student.php页面的php代码将不起作用,除非你在其他地方专门创建了这些函数,因为它们没有构建到PHP中。请参阅此处的标题函数的PHP手册,以正确重定向您的用户:http://php.net/manual/en/function.header.php
否则,其他一切看起来都应该有效!
答案 2 :(得分:0)
问题似乎在于你的HTML。表单中的输入未命名。而且,如果那是整个代码,那么一些非常关键的部分就是错误。您没有将表单控件括在&lt; form&gt;中。标签。您需要执行此操作并将表单操作定义为SELF。因此,您的代码应如下所示:
<form name="myform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<!--
Your other form elements go here as in
<input name="some name" class="some class" type="text" />
-->
</form>
如果表单提交没有达到php代码,那应该有用。