将序列化表单发送到数据库

时间:2014-01-31 15:00:33

标签: php jquery forms serialization

我正在尝试将序列化表单发送到我的数据库。我这样做是因为每个表单可以有不同数量的用户创建的输入字段,并希望以一种简单的方式以相同的方式存储所有表单。我的问题是,当我序列化表单时,使用JQuery将其附加到隐藏的输入字段,然后将表单和其他一些信息发送到数据库,其余信息到达数据库但我仍然有一个空白在序列化形式的位置。如果有人能够指出我出错的地方和/或解释应该如何做,我将非常感激!非常感谢你!

以下是我将数据发送到数据库的方式:

$orderDate = mysql_prep($_POST["orderDate"]);
        $orderName = mysql_prep($_POST["orderName"]);
        $formSerialized = mysql_prep($_POST["formSerialized"]);


        $query = "INSERT INTO test (orderDate, orderName, orderSerialized) VALUES ('{$orderDate}', '{$orderName}', '{$orderSerialized}')";
        $result = mysqli_query($connection, $query);    

以下是我尝试将序列化表单附加到的隐藏字段:

<input type="hidden" id="phpVar" name="phpVar" value="<?php echo $var; ?>">

这是JQuery:

var formSerialized = $("form").serialize();
$("#phpval").val(formSerialized);

1 个答案:

答案 0 :(得分:1)

看起来您正在序列化表单,然后将其插入到id为phpval的元素中。

您应该使用jQuery ajax函数发送序列化表单,然后将其发布到您的php页面。 REF。 http://api.jquery.com/jquery.ajax/

$('#submit').click(function(){
    var form = $('#my_awesome_form');

    $.ajax( {
      type: "POST",
      url: form.attr( 'action' ),
      data: form.serialize(),
      success: function( response ) {
        console.log( response );
      }
    });
});