Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php将使用javascript创建的div传递到另一个页面_Javascript_Php_Jquery_Html_Css - Fatal编程技术网

如何使用php将使用javascript创建的div传递到另一个页面

如何使用php将使用javascript创建的div传递到另一个页面,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我不知道如何在创建div后在另一个页面中显示它们。当使用函数创建div时,单击按钮后,它们将显示在主页的div中,紧接着,必须重定向到第二页,传递创建的div 主页的工作原理示例: 我不知道如何在第二页中发送和显示刚刚创建的div 我认为应该用php设置动作,但我不知道 重要的 您不必理解Js代码。你只需要知道我想复制到第二页的div,在开始的时候,并不存在。因此,复制到新页面操作必须在创建div之后完成 主页: <html lang="it"> <head>

我不知道如何在创建div后在另一个页面中显示它们。当使用函数创建div时,单击按钮后,它们将显示在主页的div中,紧接着,必须重定向到第二页,传递创建的div

主页的工作原理示例:

我不知道如何在第二页中发送和显示刚刚创建的div

我认为应该用php设置动作,但我不知道

重要的

您不必理解Js代码。你只需要知道我想复制到第二页的div,在开始的时候,并不存在。因此,复制到新页面操作必须在创建div之后完成

主页:

<html lang="it">
      <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
      <meta charset="UTF-8">
            <link rel="stylesheet" href="style.css"/>
        </head>
        <body>
<div id="faketxt" contenteditable>Write Here</div>
<button id='btn'>OK</button> <br>

<div id='boxes'>

</div>

<script type="text/javascript">

$('#btn').click(function() {
  var primo = document.getElementById('faketxt');
  var wordLimit = 145;
  var words = primo.textContent.replace(/(&lt;([^&gt;]+)&gt;)/ig,"").split(/\s/);
  if (words.length) {
    var count = 0;
    var div = createDiv();
    words.forEach(function(word) {
      if (++count > wordLimit) {
        count = 1;
        div = createDiv();
      }
      if (div.innerHTML) {
        div.append(' ');
      }
      div.append(word);
    });
  }
});

function createDiv() {
  div = document.createElement('div');
  div.className = 'fakes';
  document.getElementById('boxes').append(div);
  return div;
}

        </script> 

</body>
</html>

好吧,你至少有3种方法可以做到这一点,这都归结为如何在两页之间传递足够的信息:

1您可以在刚刚创建这些div时获取它们的HTML,将其存储在会话存储中,然后从存储的HTML重新创建div。这样你就不必知道第二页上的div,但是你可以存储多少是有限制的。此外,如果信息敏感,可能会带来一些安全/隐私风险,因此您可能需要执行一些额外的编码来缓解这些风险

2您可以根据在第一页创建div时使用的同一组信息在第二页上重新创建这些div。JS代码可以在两者之间共享

3使用服务器端生成div的内容。这样,您可以生成第一页和第二页内容

还是我对这个问题有什么遗漏

在提交表单中创建隐藏文本输入 将新的div值添加到该隐藏输入 提交表单将通过php将值发送到下一页 现在使用类似php的javascript选择该值

var xyz=

现在,您可以随意使用此值


我不知道为什么这里没有显示带有php标记的值:

您不必发送整个div,只需发送下一页重新创建所需的数据量即可。 i、 e.您可以使用cookie并让用户记住:

document.cookie = "divinfo=The text field of the div's;\
                   path=/";
具有包含相关信息的隐藏输入字段

<input name="divinfo" hidden value="The info required for the creation of the div"/>

如果您使用cookie,javascript可以在另一端重新创建数据。如果您使用隐藏输入,您应该让php重新创建数据。

我建议进行一些更改。首先,使用一种适当的形式——就像你在第一次修改你的问题时那样

<form action="download.php">
  <input id="faketxt" type="text" value="Write Here" />
  <button id='btn'>OK</button>
</form>
<div id='boxes'></div>

您的download.php中有faketxt输入。你为什么不在那里创建它呢?div只是随机标记,为什么要传递这些信息?他已经在faketxt输入字段中拥有了他所需要的所有信息。他只需要在download.php.var xyz=中读取此字段;在第二页中,您只需要通过这段代码选择php对javascript的值。然后您可以随意使用这个javascript变量。
<?php echo $_POST["faketxt"]; ?>
$('#btn').click(function() {
    var primo = document.getElementById('faketxt');
    var wordLimit = 5;
    var words = primo.value.replace(/(&lt;([^&gt;]+)&gt;)/ig,"").split(/\s/);

    while (words.length > 0){
       let div = createDiv();
       div.append(words.splice(0,wordLimit).join(" "));
    }
});