将php变量传递到不同文件中的jQueryAjax
我一直在尝试将变量从php传递到Jquery,以确保将php变量传递到不同文件中的jQueryAjax,php,jquery,ajax,Php,Jquery,Ajax,我一直在尝试将变量从php传递到Jquery,以确保INSERTquery是成功的。 首先,默认情况下,$msg变量有一个空字符串,然后一旦mysqli_num_rows如果语句为true,$msg变量将不再为空 这是我的php $errfname = $errlname = $errusername= $errpassword = $msg= ""; $status=1; $message="Success"; if (empty($_POST['fname'])) {
INSERT
query是成功的。
首先,默认情况下,$msg
变量有一个空字符串,然后一旦mysqli_num_rows
如果语句为true,$msg
变量将不再为空
这是我的php
$errfname = $errlname = $errusername= $errpassword = $msg= "";
$status=1;
$message="Success";
if (empty($_POST['fname'])) {
$errfname = "Please enter First Name";
$emptyfname['emptyfname'] = $errfname;
echo json_encode($emptyfname);
}else{
$fname = $_POST['fname'];
$emptyfname['emptyfname'] = "";
echo json_encode($emptyfname);
}
if (empty($_POST['lname'])) {
$errlname = "Please enter Last Name";
}else{
$lname = $_POST['lname'];
}
if (empty($_POST['username'])) {
$errusername = "Please enter First Name";
}else{
$username = $_POST['username'];
}
if (empty($_POST['password'])) {
$errpassword = "Please enter Password";
}else{
$password = $_POST['password'];
}
if ($errfname=="" && $errlname=="" && $errusername=="" && $errpassword=="") {
$exist = "SELECT * FROM users WHERE username='$username'";
$result = mysqli_query($dbc, $exist);
$row = mysqli_fetch_assoc($result);
if (mysqli_num_rows($result)==1) {
$status=0;
$message="Usermame exist";
$array=array('status' => $status,
'message' => $message);
echo json_encode($array);
}
else{
$query = "INSERT INTO users (fname,lname,username,password) VALUES ('$fname','$lname','$username','$password')";
$result = mysqli_query($dbc, $query);
$_SESSION['username'] = $row['username'];
$_SESSION['user_id'] = $row['id'];
}
}
?>
在js文件中,我想传递php变量,它是$msg
,这样我就可以对它做些什么了。我想做的是,如果变量$msg
为空,这意味着它成功了,那么我将把用户重定向到主页
这是js
$(document).ready(function(){
$("#submit").click(function(e){
var me = $(this);
e.preventDefault();
if ( me.data('requestRunning') ) {
return;
}
me.data('requestRunning', true);
var sendfname = $("#fname").val();
var sendlname = $("#lname").val();
var sendusername = $("#username").val();
var sendpass = $("#pass").val();
if(sendfname == ""){
$("#fname").addClass("empty");
$("#fname").attr("placeholder", 'Please Enter First Name').focus().blur();
}
if(sendlname == ""){
$("#lname").addClass("empty");
$("#lname").attr("placeholder", 'Please Enter Last Name').focus().blur();
}
if(sendusername == ""){
$("#username").addClass("empty");
$("#username").attr("placeholder", 'Please Enter Username').focus().blur();
}
if(sendpass == ""){
$("#pass").addClass("empty");
$("#pass").attr("placeholder", 'Please Enter Password').focus().blur();
}
$.ajax({
type: 'POST',
url: 'process.php',
dataType: 'json',
data: "fname=" + sendfname + "&lname="+sendlname + "&username="+sendusername + "&password="+sendpass,
success: function(data1){
if(data1.status==1){
alert(data1.message);//success
}else{
alert(data1.message);//error
}
},
complete: function() {
me.data('requestRunning', false);
}
});
return false;
});
你的代码有一些严重的问题 首先在PHP文件中,您需要定义两个变量。一个用于状态,另一个用于消息
$errfname = $errlname = $errusername= $errpassword = $msg= "";
$status=1;
$message="Success";
if (empty($_POST['fname'])) {
$message = "Please enter First Name";
$status=0;
}else{
$fname = $_POST['fname'];
}
if (empty($_POST['lname'])) {
$message = "Please enter Last Name";
$status=0;
}else{
$lname = $_POST['lname'];
}
if (empty($_POST['username'])) {
$message = "Please enter First Name";
$status=0;
}else{
$username = $_POST['username'];
}
if (empty($_POST['password'])) {
$message = "Please enter Password";
$status=0;
}else{
$password = $_POST['password'];
}
if ($errfname=="" && $errlname=="" && $errusername=="" && $errpassword=="") {
$exist = "SELECT * FROM users WHERE username='$username'";
$result = mysqli_query($dbc, $exist);
$row = mysqli_fetch_assoc($result);
if (mysqli_num_rows($result)==1) {
$message="Usermame exist";
$status=0;
}
else{
$query = "INSERT INTO users (fname,lname,username,password) VALUES ('$fname','$lname','$username','$password')";
$result = mysqli_query($dbc, $query);
if(!$result){
$message="error";
$status=0;
}
}
}
$array=array('status' => $status,
'message' => $message);
echo json_encode($array); // send data as json format
您的jquery代码严重错误,您正在验证ajax响应成功后的数据。请在此之前进行验证。在jquery中
if(sendfname == "")
{
return;
}
//write all your validations then write ajax
$.ajax({
type: 'POST',
url: 'process.php',
dataType: 'json',
data: "fname=" + sendfname + "&lname="+sendlname + "&username="+sendusername + "&password="+sendpass,
success: function(data1){
if(data1.status==1){
alert(data1.message);//success
}else{
alert(data1.message);//error
}
}
在通过AJAX调用将数据传递给PHP脚本之前进行javascript验证是否更有意义?我不是建议你不要在PHP中也这样做,而是将数据传递到ajax调用
数据:{fname:sendfname,lname:sendlname,username:sendlname,password:sendpass},
我不太明白,抱歉,我是jquery的初学者,这不是jquery问题,这是一个逻辑方法问题。在使用数据之前验证数据,而不是在使用数据之后验证数据。IDNT我传递了一个数据:“fname=“+sendfname+”&lname=“+sendlname+”&username=“+sendlname+”&password=“+sendlusername+”&password=“+sendpassParameter isdata1
notdata
我更新了我的代码,请查看它是否正确,顺便说一句,它仍然不起作用,如果用户现在正在工作,则没有警报,我在php中还有一个json_编码,我删除了它,现在它正在工作。但是,我如何在没有问题的情况下进行多个json_编码呢