Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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 Can';t使用ajax发布多个变量_Php_Ajax_Jquery_Mysqli - Fatal编程技术网

Php Can';t使用ajax发布多个变量

Php Can';t使用ajax发布多个变量,php,ajax,jquery,mysqli,Php,Ajax,Jquery,Mysqli,我只能传递此代码中的一个变量。如果看起来像这样,我只能传递firstname变量。当我不小心拼错了fistname(当我将数据设置为post时),则只传递了lastname变量。所以我希望能够发布这两个变量,这是我的问题 var firstname = $("#firstname").val(); var lastname = $("#lastname").val(); $.ajax({ type: "POST", url: "modify_profile.php", d

我只能传递此代码中的一个变量。如果看起来像这样,我只能传递
firstname
变量。当我不小心拼错了
fistname
(当我将数据设置为post时),则只传递了
lastname
变量。所以我希望能够发布这两个变量,这是我的问题

var firstname = $("#firstname").val();
var lastname = $("#lastname").val();
$.ajax({
    type: "POST",
    url: "modify_profile.php",
    data: { firstname: firstname, lastname: lastname },
    success: function( data){             
    }
});
我还试着写:data:{“firstname”:firstname,“lastname”:lastname},但这也不起作用

这是完整的代码。这是我的文件modify_profile.php。所有事情都发生在这个文件中

 <!Doctype HTML>
    <html>
        <head>
            <title> Resor </title>
        </head>
        <body>
        <?php
        require("../db/connect.php");
        $email='test@gmail.com';


        // Hämtar all data från personen som är inloggad
        $sql="SELECT * from user WHERE email='$email'";
        $query=mysqli_query($dbcon,$sql);
        $result=mysqli_fetch_array($query);

        $firstname=$result['first_name'];
        $lastname=$result['last_name'];
        $password=$result['password'];



        // HERE IS WHERE FIRSTNAME IS CHANGED IN CASE IT HAS BEEN UPDATED.
            if( isset($_POST['firstname'])) 
            {

        $firstname=( $_POST['firstname']);
        $query=mysqli_query($dbcon, "UPDATE user SET first_name='$firstname' WHERE     email='$email'");
         $result = mysqli_query($dbcon,$query);
          if (!$result) {
              die("MySQL error ".mysqli_errno().": ".mysqli_error()."\n<br>When executing  <br>\n$query\n<br>");
          }

          }
//  HERE IS WHERE LASTNAME IS CHANGED IN CASE IT HAS BEEN UPDATED.
        if( isset($_POST['lastname']))
           {

        $lastname=( $_POST['lastname']);
        $query=mysqli_query($dbcon, "UPDATE user SET last_name='$lastname' WHERE email='$email'");
        $result = mysqli_query($dbcon,$query);
          if (!$result) {
              die("MySQL error ".mysqli_errno().": ".mysqli_error()."\n<br>When executing <br>\n$query\n<br>");
          }

          }



            echo "<p> Namn: $firstname $lastname  <span id=name> &Auml;ndra</span> </p>";






             ?>
            <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">   </script>
            <script>
            $(document).ready(function(){



                $('#name').on('click', function() {
                    var node = "<form action='modify_profile.php' method='post'><p>F&ouml;rnamn: <input type='text' name='firstname' id='firstname'value='<?=$firstname?>' ></p><p>Efternamn: <input type='text' name='lastname' id='lastname' value='<?=$lastname?>'></p><p>V&auml;nligen mata in ditt l&ouml;senord f&ouml;r att bekr&auml;fta &auml;ndringen.</p> <p> L&ouml;senord:<input type='password' name='password'  id='password'></p><input type='button' value='Spara &auml;ndringar' id='confirm_name'/><input type='button' value='Avbryt' id='cancel_name_change' /></form>";





                    $(this).parent().after(node);
                    $(this).parent().remove();

                }); 

                            //if the confirm button has been pressed
                $(document).on('click', '#confirm_name', function(){
                var firstname = $("#firstname").val();
                var lastname=$("#lastname").val();
                var password=$("#password").val();


                if(password!='<? echo "$password"; ?>'){
                alert("No changes has been made due to wrong password.");
                }
                else{
                    $.ajax({
                        type: "POST",
                        url: "modify_profile.php",
                      data: {"firstname":firstname,"lastname":lastname},
                        success: function( data){     
                        }
                    }); 
                }
                });

                // if interrupted 

                $(document).on('click', '#cancel_name_change', function(){

                location.reload();

                });

                //slutparentes
            });
            </script>
            <?php require("../db/close.php")
            ?>
        </body> 
    </html>

原因

这是正确的语法。您是否尝试在
modify\u profile.php
文件中
print\r($\u POST)
?打开firebug控制台并检查ajax请求中发送的参数。问题可能来自于您的php代码,您能否向我们展示modify\u profile.php的代码?(仅获取变量的部分)显示请求本身工作正常。它当然会给出404,因为找不到php文件,但是如果您在浏览器中检查inspector的Network选项卡,您将看到这两个值都正确显示。您的代码中还出现了其他问题,或者问题出在PHP部分。我同意其他人的看法。。问题似乎出在modify_profile.php中。。。如果可以,请共享代码。。。