“提交”按钮无效。所有代码似乎都没有错误,但它只是没有插入我的数据库。我目前正在使用bootstrap。我不知道我遇到的错误是什么。
的index.html
<div class="container">
<div class="col-md-5">
<div class="form-area">
<form role="form">
<br style="clear:both">
<h3 style="margin-bottom: 25px; text-align: center;">Schedule Form</h3>
<form name="form2" method="post" action="scheduleform.php">
<div class="form-group">
<input type="text" class="form-control" id="tajuk" name="tajuk" placeholder="Tajuk" required>
</div>
<div class="form-group">
<input type="text" class="form-control" id="tarikh" name="tarikh" placeholder="Tarikh" required>
</div>
<div class="form-group">
<input type="text" class="form-control" id="mobile" name="mobile" placeholder="Mobile Number" required>
</div>
<div class="form-group">
<textarea class="form-control" type="textarea" id="maklumat" name="maklumat" placeholder="Maklumat" maxlength="140" rows="7"></textarea>
<span class="help-block"><p id="characterLeft" class="help-block ">You have reached the limit</p></span>
</div>
<button><input type="submit" name="submit" class="btn btn-primary pull-right">Submit Form</button>
</form></form>
</div>
</div>
</div>
<!-- /#page-content-wrapper -->
scheduleform.php
<?php
$server = "localhost";
$user = "root";
$pass = "";
$dbname = "kajangdb";
//Creating connection for mysqli
$conn = new mysqli($server, $user, $pass, $dbname);
//Checking connection
if($conn->connect_error){
die("Connection failed:" . $conn->connect_error);
}
$tajuk = mysqli_real_escape_string($conn, $_POST['tajuk']);
$tarikh = mysqli_real_escape_string($conn, $_POST['tarikh']);
$mobile = mysqli_real_escape_string($conn, $_POST['mobile']);
$maklumat = mysqli_real_escape_string($conn, $_POST['maklumat']);
$sql = "INSERT INTO schedule (tajuk, tarikh, mobile, maklumat) VALUES ('$tajuk', '$tarikh', '$mobile', '$maklumat')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
&GT;
答案 0 :(得分:0)
我在您的代码中发现的问题。 1.您不需要使用另一个表单元素包装表单元素 2。
$sql = "INSERT INTO schedule (tajuk, tarikh, mobile, maklumat) VALUES ('$tajuk', '$tarikh', '$mobile', '$maklumat')";
这里你在“schedule”和“VALUES”之后添加了额外的空格,这可能会产生问题。更改您的代码如下。
$sql = "INSERT INTO schedule(tajuk, tarikh, mobile, maklumat) VALUES('$tajuk', '$tarikh', '$mobile', '$maklumat')";
答案 1 :(得分:0)
1)嵌套表单肯定容易出错。如果,请在页面中使用更多表单
你希望,但永远不会筑巢。你在里面使用form2
另一个。不要那样做,删除外面的那个。
2)您的提交按钮语法错误。使用input
或button
。
而不是:
<button><input type="submit" name="submit" class="btn btn-primary pull-right">Submit Form</button>
使用:
<input type="submit" name="submit" value="Submit Form" class="btn btn-primary pull-right" />
或:
<button type="submit" name="submit" class="btn btn-primary pull-right">Submit Form</button>
3)对$_POST
值进行验证。像:
if (
!isset($_POST['tajuk']) ||
!isset($_POST['tarikh']) ||
!isset($_POST['mobile']) ||
!isset($_POST['maklumat'])
) {
echo 'Error: not all values are valid. Please provide valid values.';
}
$conn = new mysqli($server, $user, $pass, $dbname);
//...
我建议您始终准备执行sql语句,以避免SQL注入风险。在查询之前使用prepare()
。请参阅:mysqli::prepare。
还使用异常处理。请参阅The mysqli_sql_exception class
不允许在跨度(<p>
)内使用段落(<span>
)。使用其他容器类型,例如<div>
而不是<span>
。所以,替换
<span class="help-block">
<p id="characterLeft" class="help-block ">
You have reached the limit
</p>
</span>
与
<div class="help-block">
<p id="characterLeft" class="help-block ">
You have reached the limit
</p>
</div>