Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php变量传递到不同文件中的jQueryAjax_Php_Jquery_Ajax - Fatal编程技术网

将php变量传递到不同文件中的jQueryAjax

将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'])) {

我一直在尝试将变量从php传递到Jquery,以确保
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 is
data1
not
data
我更新了我的代码,请查看它是否正确,顺便说一句,它仍然不起作用,如果用户现在正在工作,则没有警报,我在php中还有一个json_编码,我删除了它,现在它正在工作。但是,我如何在没有问题的情况下进行多个json_编码呢