【问题标题】:Saving form value along with form in Session将表单值与 Session 中的表单一起保存
【发布时间】:2015-08-14 07:12:34
【问题描述】:

我正在使用 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[]">

【问题讨论】:

  • rowCount && field_options 这些是全局变量吗?
  • 您好,您应该使用 php 变量 &lt;input class="form-control" type="text" id="inptval_2" name="search_input_value[]" value="&lt;?php $Your_variable; ?&gt;"&gt; 填充值输入
  • 是的,这些是全局变量@TismonVarghese

标签: php jquery ajax session


【解决方案1】:

先创建这个函数:-

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)
    }
});
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多