【问题标题】:Javascript: How to print a value from a $_SESSION array?Javascript:如何打印 $_SESSION 数组中的值?
【发布时间】:2017-07-06 12:53:16
【问题描述】:

有没有办法让javascript创建php代码,在php页面上运行时执行?我正在尝试将输入的值设置为 ,其中 div_id 是一个 js 变量,输入是一个二维关联数组。

问题在于它实际上将值设置为“”,而不是 floor_type 字段的值。其他一切似乎都有效。

inputs_div.innerHTML += `<div id="`+div_id+`" class="dynamic_div">
                        <ul class="dynamic_ul">
                        <li><input type="text" onblur="$('.save').click();" placeholder="Flooring Type: Wood Floor, Tile, etc." name="inputs[`+div_id+`][floor_type]" maxlength="255" value="<?php echo $_SESSION['inputs']['`+div_id+`']['floor_type']; ?>"></li>
                        </ul>
                        </div>

我正在使用 javascript 动态创建一些 html 输入,但我正在寻找一种方法来防止它们在页面刷新时被清除。也许有一种更简单的方法可以让输入保持在那里?

我的想法是使用ajax从每个输入元素的onblur事件中运行一些php代码,将inputs[][]数组保存到会话中,这样刷新页面时不会丢失。

【问题讨论】:

标签: javascript php arrays session persistence


【解决方案1】:

使用隐藏字段存储 $_SESSION[] 值,然后在准备好文档时获取隐藏字段的值并设置为 javascript 变量。

<input type="hidden" id="hdn" value="<? php echo $_SESSION['inputs'] ?>" />


$(document).ready(function()
{    var session_value = $('#hdn').attr('value');    // now use session_value variable when set the innerhtml of inputs_div });

【讨论】:

  • hmm,hdn 的值最终只是“数组”,而不是实际的数组。输入是一个二维关联数组。所以我需要找到一种方法将其从会话复制到 js 数组中
  • 也许我可以将输入数组保存到 cookie 或会话存储中。但是我不确定在每个输入的 onblur 事件中添加什么
  • 您可以在 document.ready() 上使用 Ajax 来调用 php 页面并在其响应中获取 Session 数组值。在成功回调函数中,您可以将响应数据分配给 javascript 变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多