有关从另一个页面访问动态生成的php变量数据的建议

问题描述

我有一个页面searchpage.PHP,它为用户搜索输入动态生成“帖子”。

              while ($row = $result -> fetch_assoc()){
                    $_SESSION['id'] = $row['postId'];
                    echo"
                        <div id='card'>
                            <div id='imageholder'>
                                <img src=",$row['postPic'],">
                            </div>
        
                            <div id='detailscard'>
                                " . $row['postId'] . "
                                <h2 id='cname'>" . $row['postName'] . "</h2>
                    `enter code here`            <h4 id='clocation'>" . $row['postLocation'] . "</h4>
                                <h4 id='cprice'>Rs." . $row['postPrice'] . "</h4>
                                <h4 id='cavailability'>" . $row['postType'] . "</h4>
                            </div>
                        </div>
                    ";
                }

单击div id =“ card”元素时,我已使用事件侦听器将用户定向到特定的帖子。但是,这仅适用于生成/回显的第一条帖子,不适用于多个帖子/搜索结果

function openPost(){
window.open("../html/postpage.PHP","_self");
}

但是,当我使用内联js onclick触发openPost()函数时,这个问题不存在。我不知道为什么,以及如何仅使用外部js来做到这一点。

其次,我使用会话将具有发布数据的PHP变量传递到发布页面。例如-$ _SESSION ['id'] = $ row ['postId'];。

但是,当我回显$ _SESSION ['id']时,它仅输出一个帖子的ID,而不输出我单击过的帖子。

我该如何纠正这个问题,以传递我选择的特定帖子的变量?

解决方法

使用会话。并使用以下命令启用它:

session_start();

然后在源PHP中,使用类似以下内容的

$_SESSION["Variable"] = "value";

在目的地postpage.php中,以这种方式使用它:

echo $_SESSION["Variable"];

这是在PHP页面之间传递值的正确方法,希望您不超过PHP的最大会话存储限制(Maximum size of a PHP session)。

无论您是否使用AJAX-适用于传统POST或页面更改或AJAX,这都适用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...