引导程序中的按钮不起作用

时间:2017-05-23 03:48:26

标签: php database twitter-bootstrap

单击时,

“提交”按钮无效。所有代码似乎都没有错误,但它只是没有插入我的数据库。我目前正在使用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;

2 个答案:

答案 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)您的提交按钮语法错误。使用inputbutton

而不是:

<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

编辑1:

不允许在跨度(<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>