这是我的代码:
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script>
$(document).ready(function() {
$("#btnSubmit").click(function() {
$.ajax({
type: "POST",
url: "deepak.php",
datatype: "html",
data: 'Name=' + $("#name").val() + '&Email=' + $("#email").val() + '&password=' + $("#password").val() + '&cnfpassword=' + $("#cnfpassword").val(),
success: function(result) {
if (result == 'success') {
alert("Ajax Successfully Executed")
}
}
});
});
});
</script>
在我的php代码中,通过echo函数生成了“成功”消息。
ajax可以正常工作,它发出所需的请求。唯一不起作用的部分是success
。
这是我的服务器端代码:
<?php //Database credentials $dbHost = 'localhost'; $dbUsername = 'root'; $dbPassword = ''; $dbName = 'fmc';
//Connect and select the database $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
if($db){
echo 'connected'; } else {
echo "disconnected"; }
$name = $_POST['Name']; $email = $_POST['Email']; $password = $_POST['password']; $cnfpassword = $_POST['cnfpassword'];
$sql = "INSERT INTO seeifyouqualify (name, email, password, cnfpassword) VALUES ('$name', '$email', '$password', '$cnfpassword')";
$query = mysqli_query($db, $sql);
if(mysqli_query($db, $sql)){
echo "success"; } ?>
答案 0 :(得分:0)
您可以发送如下序列化的表格数据,而不是发送所有输入数据:
<script>
$(document).ready(function() {
var formData = $("form#yourformId").serialize();
$("#btnSubmit").click(function() {
$.ajax({
type: "POST",
url: "deepak.php",
datatype: "html",
data: {'data_name': formData},
success: function(result) {
if (result == 'success') {
alert("Ajax Successfully Executed")
}
}
});
});
});
</script>
我在上面所做的就是发送带有名称的数据,因为我们必须像这样在php
中捕获它:
<?php
if(isset($_POST['data_name'])){
//do something....
}
?>
使用if(isset(...))
很重要,因为假设某人在未提交表单的情况下转到了您的php
页面,因此php
不会知道$name = $_POST['name'];
是什么意思>
现在,最后一件事是,如何使用序列化数据:
<?php
if(isset($_POST['data_name'])){
$get = explode('&', $_POST['data_name'] ); // explode with and
foreach ( $get as $key => $value) {
$valn[ substr( $value, 0 , strpos( $value, '=' ) ) ] = substr( $value, strpos(
$value, '=' ) + 1 ) ;
}
// access your query param
$name = $valn['name'];
$email = $valn['email'];
$password = $valn['password'];
$cnfpassword = $valn['cnfpassword'];
}
?>
答案 1 :(得分:0)
根据您的JavaScript,如果您的结果为String('success'),则仅会调用警报。 但是在您的php代码中,建立连接后以及执行查询后,您会多次回显输出。因此,由于ajax响应不符合您的条件,您的alert()无法正常工作。