在提交时加载php表单

时间:2016-05-20 07:45:09

标签: php jquery html forms

我有一个管理面板,我可以选择将用户添加到数据库中。我创建了一个脚本,所以当您单击“添加用户”链接时,它将加载表单,您可以在其中引入用户信息。问题是,我想在同一页面中加载表单被提交时运行的代码。

这里是加载文件的js函数:

$( ".add" ).on( "click", function() {
    $(".add-user-content").load("add-user-form.php")
});

这里是php表单

<form id="formID" action="add-user-form.php" method="post">
    <p>Add Blog Administrator:</p>
    <input type="text" name="admin-user" value="" placeholder="username" id="username"><br>
    <input type="password" name="admin-pass" value="" placeholder="password" id="password"><br>
    <input type="email" name="admin-email" value="" placeholder="email" id="email"><br>
    <input type="submit" name="add-user" value="Add User">
</form>

<?php 
include '../config.php';

$tbl_name="blog_members"; // Table name 

if(isset($_POST['add-user'])){
    $adminuser = $_POST['admin-user'];
    $adminpass = $_POST['admin-pass'];
    $adminemail = $_POST['admin-email'];

    $sql="INSERT INTO $tbl_name (username,password,email) VALUES('$adminuser','$adminpass','$adminemail')";
    $result=mysqli_query($link,$sql);

    if($result){
        echo '<p class="user-added">User has been added successfully!</p>';
        echo '<a class="view-users" href="view-users.php">View Users</a>';
    }else {
        echo "Error: ".$sql."<br>".mysqli_error($link);
    }

}

?>

也许我不是那么清楚,我想要这个代码

if($result){
    echo '<p class="user-added">User has been added successfully!</p>';
    echo '<a class="view-users" href="view-users.php">View Users</a>';
}else {
    echo "Error: ".$sql."<br>".mysqli_error($link);
}

在我加载表单的同一页面中输出,因为现在当我点击提交按钮时它会转到add-user-form.php。

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

如果您这样做,代码将在发布到您的页面时重定向:

 <form name="formID" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >

如果您收到$ _POST [&#39; add-user&#39;]

,您应该添加验证,以便它显示表单。

答案 1 :(得分:0)

您要找的是使用AJAX而不是HTML提交表单。

使用Submit a form using jQuery

的答案tvanfosson

我会替换你的

<input type="submit" name="add-user" value="Add User">

<button id="add-user-submit">Add User</button>

然后使用

注册onClick-handler
$( "#add-user-submit" ).on( "click", function() {
  $.ajax({
    url: 'add-user-form.php',
    type: 'post',
    data: $('form#formID').serialize(),
    success: function(data) {
               $(".add-user-content").append(data);
             }
  });
});

添加实际的提交功能。

答案 2 :(得分:0)

你必须通过ajax提交你的。 或者你不需要加载表单html,只需隐藏表单,然后在添加用户按钮上单击显示表单。 检查此代码。希望能帮到你: -

    // Add User Button
    <div class="color-quantity not-selected-inputs">
        <button class="add_user">Add User</button>
    </div>
    // Append form here
    <div class="add_user_form"></div>
    // for posting response here
    <div class="result"></div>

处理表单和附加用户表单的脚本

<script>
$(function(){
    $( ".add_user" ).on( "click", function() {
        $(".add_user_form").load("form.php")
    });
    $(document).on("submit","#formID", function(ev){
        var data = $(this).serialize();
        console.log(data);
        $.post('handler.php',data,function(resposne){
            $('.result').html(resposne);
        }); 
        ev.preventDefault();
    });
});
</script>

form.php的

<form id="formID" action="" method="post">
    <p>Add Blog Administrator:</p>
    <input type="text" name="admin-user" value="" placeholder="username" id="username"><br>
    <input type="password" name="admin-pass" value="" placeholder="password" id="password"><br>
    <input type="email" name="admin-email" value="" placeholder="email" id="email"><br>
    <input type="submit" name="add-user" value="Add User">
</form>

handler.php

<?php 
include '../config.php';

$tbl_name="blog_members"; // Table name 

if(isset($_POST['add-user'])){
    $adminuser = $_POST['admin-user'];
    $adminpass = $_POST['admin-pass'];
    $adminemail = $_POST['admin-email'];

    $sql="INSERT INTO $tbl_name (username,password,email) VALUES('$adminuser','$adminpass','$adminemail')";
    $result=mysqli_query($link,$sql);

    if($result){
        echo '<p class="user-added">User has been added successfully!</p>';
        echo '<a class="view-users" href="view-users.php">View Users</a>';
    }else {
        echo "Error: ".$sql."<br>".mysqli_error($link);
    }
    die;
}

?>