Send form data with jquery ajax json

后端 未结 4 678
不知归路
不知归路 2020-12-03 05:10

I\'m new in PHP/jquery I would like to ask how to send json data from a form field like (name, age, etc) with ajax in a json format. Sadly I can\'t found any relevant inform

相关标签:
4条回答
  • 2020-12-03 06:07

    You can use serialize() like this:

    $.ajax({
      cache: false,
      url: 'test.php',
      data: $('form').serialize(),
      datatype: 'json',
      success: function(data) {
    
      }
    });
    
    0 讨论(0)
  • 2020-12-03 06:09

    here is a simple one

    here is my test.php for testing only

    <?php
    
    // this is just a test
    //send back to the ajax request the request
    
    echo json_encode($_POST);
    

    here is my index.html

    <!DOCTYPE html>
    <html>
    
    <head>
    
    </head>
    <body>
    
    <form id="form" action="" method="post">
    Name: <input type="text" name="name"><br>
    Age: <input type="text" name="email"><br>
    FavColor: <input type="text" name="favc"><br>
    <input id="submit" type="button" name="submit" value="submit">
    </form>
    
    
    
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            // click on button submit
            $("#submit").on('click', function(){
                // send ajax
                $.ajax({
                    url: 'test.php', // url where to submit the request
                    type : "POST", // type of action POST || GET
                    dataType : 'json', // data type
                    data : $("#form").serialize(), // post data || get data
                    success : function(result) {
                        // you can see the result from the console
                        // tab of the developer tools
                        console.log(result);
                    },
                    error: function(xhr, resp, text) {
                        console.log(xhr, resp, text);
                    }
                })
            });
        });
    
    </script>
    </body>
    </html>
    

    Both file are place in the same directory

    0 讨论(0)
  • 2020-12-03 06:14

    Sending data from formfields back to the server (php) is usualy done by the POST method which can be found back in the superglobal array $_POST inside PHP. There is no need to transform it to JSON before you send it to the server. Little example:

    <?php
    
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        echo '<pre>';
        print_r($_POST);
    }
    ?>
    <form action="" method="post">
    <input type="text" name="email" value="joe@gmail.com" />
    <button type="submit">Send!</button>
    

    With AJAX you are able to do exactly the same thing, only without page refresh.

    0 讨论(0)
  • 2020-12-03 06:15

    The accepted answer here indeed makes a json from a form, but the json contents is really a string with url-encoded contents.

    To make a more realistic json POST, use some solution from Serialize form data to JSON to make formToJson function and add contentType: 'application/json;charset=UTF-8' to the jQuery ajax call parameters.

    $.ajax({
        url: 'test.php',
        type: "POST",
        dataType: 'json',
        data: formToJson($("form")),
        contentType: 'application/json;charset=UTF-8',
        ...
    })
    
    0 讨论(0)
提交回复
热议问题