在Session中保存表单值和表单

时间:2015-08-14 07:12:34

标签: php jquery ajax session

我正在使用jQuery& ajax在正在生成的会话中保存整个表单。 当我按下搜索按钮时

onclick="updateContentdata();

被调用。这是在做什么。

function updateContentdata() {
    var updateSearchContent = $('#savelistdata').html();
    var rowNumb = rowCount;
    var inFileds = JSON.stringify(field_options);

    //  var inputValue =  $('inptval_' + rowCount).val();

    $.ajax({
        type: "POST",
        url: "<?= $HOMEPAGE_ROOT; ?>/ajax_listuser.php",
        data: {
            rowNum: rowNumb,
            field_options: inFileds,
            html: updateSearchContent
        },
        success: function (data) {
            $('#searchusers').submit();
        },
        error: function (req, status, error) {
            console.log(error)
        }
    });
}

ajax_listuser.php

<?php

    session_start();

    if(isset($_POST['html']) && isset($_POST['rowNum'])){

        $_SESSION['searchContent'] = $_POST['html'] ;
        $_SESSION['rowNumber'] = $_POST['rowNum'] ;
        $_SESSION['field_options'] = $_POST['field_options'];

    }
?>

表单正在会话中保存,但我想在会话中保留表单值。但它只保留表格。

基本上我需要

<input class="form-control" type="text" id="inptval_2" name="search_input_value[]" value="71347">

而不是

<input class="form-control" type="text" id="inptval_2" name="search_input_value[]">

2 个答案:

答案 0 :(得分:0)

您可能必须将这些值放回到表单中,因为当有人填写表单时,value="123"不是html的一部分。迭代您拥有的值并找到相应的form-element,并设置其值

答案 1 :(得分:0)

首先创建此功能: -

function getHtml(div){
  div.find("input, select, textarea").each(function () {
    var $this = $(this);
    if ($this.is("[type='radio']") || $this.is("[type='checkbox']")) {
        if ($this.prop("checked")) {
            $this.attr("checked", "checked");
        }
    } else {
        if ($this.is("select")) {
            $this.find(":selected").attr("selected", "selected");
        } else {
            $this.attr("value", $this.val());
        }
     }
   });    
 return div.html();
}

然后修改您的功能: -

function updateContentdata() {
var updateSearchContent = getHtml($('#savelistdata'));
var rowNumb = rowCount;
var inFileds = JSON.stringify(field_options);

//  var inputValue =  $('inptval_' + rowCount).val();

$.ajax({
    type: "POST",
    url: "<?= $HOMEPAGE_ROOT; ?>/ajax_listuser.php",
    data: {
        rowNum: rowNumb,
        field_options: inFileds,
        html: updateSearchContent
    },
    success: function (data) {
        $('#searchusers').submit();
    },
    error: function (req, status, error) {
        console.log(error)
    }
});
}