How to send serialize form data using JQuery if the input element is an array

后端 未结 14 702
庸人自扰
庸人自扰 2020-12-16 15:16

I have this piece of code in my PHP code:

while ($row = mysqli_fetch_assoc($result))
{
    extract($row);
    echo \"\";
    echo \"

        
14条回答
  •  星月不相逢
    2020-12-16 15:43

    Thanks Tomalak.

    In the PHP file, I am using the following code now:

    while ($row = mysqli_fetch_assoc($result)) {
        extract($row);
        echo "";
            echo "$book_id";
            echo "$book_name";
        echo "";
    } // while
    

    **The book_id is unique.

    Using tvanfosson solution, now i am able to get array of input value

    var selectedBooks = $('form#book_form').serialize(); alert (selectedBooks);

    From the alert message box, I get ==> bookArray%5B%5D=T2.05&bookArray%5B%5D=T2.81

    Now, when I sent the serialize input value to PHP file using JQuery

    var selectedBooks   = $('form#book_form').serialize();
    alert (selectedBooks);
    
    var url = 'saveBookList.php';
    
    // Send to server using JQuery
    $.post(url, {bookArray: selectedBooks}, function(responseData) {
        $("#save-result").text(responseData);
    });
    

    Inside saveBookList.php to process the serialize form, i got this error "Invalid argument supplied for foreach()".

    Inside saveBookList.php,

    // If you have selected from list box.
    if(isset($_POST['bookArray'])) {
    
        // Get array or bookID selected by user
        $selectedBookId = $_POST['bookArray'];
        echo $selectedBookId;
    
        foreach($selectedBookId as $selectListItem) {
            echo "You sent this -->" . $selectListItem . "\n";
        }
    }
    

    The PHP code above works fine if i am sending using Prototype.

    For Prototype when i do echo $selectedBookId;

    I got Array.

    For JQuery, when i do echo $selectedBookId;

    I got ==> bookArray%5B%5D=T4.11&bookArray%5B%5D=T4.38

    My question, does jQuery support array value for post method?

提交回复
热议问题