嘿伙计们,我有一张表格:
<form action="signup.php" method="post" class="cd-form">
<p class="fieldset">
<input class="full-width has-padding has-border" type="text" required maxlength="15" placeholder="First Name" name="primeiro_nome" />
</p>
<p class="fieldset">
<input class="full-width has-padding has-border" type="text" required maxlength="15" placeholder="Last Name" name="segundo_nome">
</p>
<p class="fieldset">
<input class="full-width has-padding has-border" type="email" required maxlength="50" placeholder="E-mail" name="o_email">
</p>
<p class="fieldset">
<input class="full-width" type="submit" value="Sign Up!">
</p>
</form>
您可能会注意到该操作正在调用&#34; signup.php&#34; :
<?php
$con=new mysqli ("localhost","root","","chroniclemark");
mysqli_set_charset($con, 'utf8mb4');
if($con->connect_error)
{
echo $con->connect_errno;
die("Database Connection Failed");
}
if(($_POST['primeiro_nome']) != ""){
$sql = "INSERT INTO users (nome, sobrenome, email)
VALUES('{$con->real_escape_string($_POST['primeiro_nome'])}', '{$con->real_escape_string($_POST['segundo_nome'])}', '{$con->real_escape_string($_POST['o_email'])}')";
$insert = $con->query($sql);
}
?>
这是有效的。表单中的数据将插入到我的数据库中。我遇到的问题是,在提交表单和&#34; signup.php&#34;页面打开而不是它。
我该如何解决这个问题?我非常希望有一个&#34;感谢您注册&#34;弹出同一页而不是切换到另一页。
答案 0 :(得分:1)
您必须使用AJAX而不是直接提交表单
您将带有JS XMLHttpRequest或Fetch_API的POST请求发送到For n As Int32 = 0 To TextBox1.text - 1
,获取回复并显示&#34;感谢您注册&#34;弹出
答案 1 :(得分:1)
主要有两种方法可以做到这一点。 1.您可以使用Jquery $ .ajax方法发送数据,获取响应并显示您的消息。 或者你可以简单地让自己的php页面进行处理。添加提交按钮。
将<form action="signup.php" method="post" class="cd-form">
更改为
<form action="" method="post" class="cd-form">
在表格后面添加以下内容。
<?php
if (isset($_POST["submit"]){
//do your processing here
//at the end of processing you can use echo or HTML to display a thank you message
}
?>
答案 2 :(得分:1)
您可以使用AJAX将数据保存到数据库,并在同一页面中向用户显示消息。单击按钮,请求将发送到服务器,数据将保存到数据库中,成功或失败时会返回响应,然后向用户显示消息。
<强>表格强>
首先将id输入到表单中的输入类型并添加消息div。
<form method="post" class="cd-form">
<p class="fieldset">
<input class="full-width has-padding has-border" type="text" required maxlength="15" placeholder="First Name" id="primeiro_nome" />
</p>
<p class="fieldset">
<input class="full-width has-padding has-border" type="text" required maxlength="15" placeholder="Last Name" id="segundo_nome">
</p>
<p class="fieldset">
<input class="full-width has-padding has-border" type="email" required maxlength="50" placeholder="E-mail" id="o_email">
</p>
<p class="fieldset">
<input class="full-width" id='saverecords' type="button" value="Sign Up!">
</p>
用于向服务器发送AJAX请求的jQuery代码
添加脚本标记包括jQuery和内部点击事件获取字段的值,然后发布到php页面:
<script src=”http://code.jquery.com/jquery-3.1.1.min.js”></script>
<script type=”text/javascript”>
$(function(){
$("#saverecords").on('click', function(){
var pnome = $("#primeiro_nome").val();
var sname = $("#segundo_nome").val();
var email = $("#o_email").val();
$.ajax({
method: "POST",
url: "saverecords.php",
data: {"pname": pname, "sname": sname, "email": email},
}).done(function( data ) {
var result = $.parseJSON(data);
var str = '';
if(result == 1) {
str = 'Signup successfull.';
}else{
str = 'Data could not be saved. Please try again';
}
$("#message").html(str);
});
});
</script>
php服务器端代码:
请根据您的要求进行更改
创建一个php页面:saverecords.php 在saverecords.php中,您可以将数据插入数据库。
$conn = new mysqli($host, $username, $password, $dbname);
$pname = $_POST['pname'];
$sname = $_POST['sname'];
$email = $_POST['email'];
$sql = "insert into tablename (pname, sname, email) values (?, ?, ?) ";
$stmt = $conn->prepare($sql);
$stmt->bind_param('sss', $pname, $sname, $email);
if($stmt->execute()){
$result = 1;
}
}
echo $result;
$conn->close();
如果您仍然遇到问题,请访问此链接,您可以找到有关如何使用jQuery Ajax与php mysqli
的详细教程答案 3 :(得分:0)
您可以在iframe中设置操作页面,以便您的表单页面保持在最顶层
就像那样:
<form action="signup.php" method="post" class="cd-form" target="my_iframe">
<p class="fieldset">
<input class="full-width has-padding has-border" type="text" required maxlength="15" placeholder="First Name" name="primeiro_nome" />
</p>
<p class="fieldset">
<input class="full-width has-padding has-border" type="text" required maxlength="15" placeholder="Last Name" name="segundo_nome">
</p>
<p class="fieldset">
<input class="full-width has-padding has-border" type="email" required maxlength="50" placeholder="E-mail" name="o_email">
</p>
<p class="fieldset">
<input class="full-width" type="submit" value="Sign Up!">
</p>
</form>
<iframe id="my_iframe" name="my_iframe" style="display:none"></iframe>
您还可以使用jquery:
将表单数据发送到PHP页面$(document).on('submit','.cd-form',function(e){
e.preventDefault();
$.ajax( {
url: "signup.php",
type: 'POST',
data: new FormData( this ),
cache: false,
dataType: "json",
success: function(r){
alert("data sent successfully");
}
} );
} );