我有一个管理面板,我可以选择将用户添加到数据库中。我创建了一个脚本,所以当您单击“添加用户”链接时,它将加载表单,您可以在其中引入用户信息。问题是,我想在同一页面中加载表单被提交时运行的代码。
这里是加载文件的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。
感谢您的帮助!
答案 0 :(得分:1)
如果您这样做,代码将在发布到您的页面时重定向:
<form name="formID" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
如果您收到$ _POST [&#39; add-user&#39;]
,您应该添加验证,以便它显示表单。答案 1 :(得分:0)
您要找的是使用AJAX而不是HTML提交表单。
的答案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;
}
?>