[英]Pass PHP variable from one page to another to get correct item from button
我有 2 个页面, content.php和pagecontent.php ,在 content.php 中,我将数据库中的产品信息显示到表标签中,里面有一个 2 行 3 列的网格,我将产品的描述回显到其中。 其中一个网格行包含一个按钮,上面有一个缩略图,以便它可以将用户链接或发送到pagecontent.php以获取该特定产品信息页面。 在pagecontent.php 上,用户将能够将产品添加到购物车/愿望清单(还没有,未来的东西)。
到目前为止,在content.php 上我已经能够显示数据库中的所有产品,从查询和 while 循环,工作,我能够更改数据库中的内容,并且更改会发生在content.php 上。 我在用$_GET
传递变量或 id 方面没有成功,我相信这就是我想在这种情况下使用的。 也不要认为我的 ajax 是正确的或缺少的东西。 我试图弄清楚按钮如何从数据库中获取产品 PartsID(1、2、3 等...),PartsID 是列名,稍后在单击时调用,然后将其传递给pagecontent.php以获取从按钮正确的产品信息。 如果有更好的方法,那么我使用的方式然后让我知道。
内容.php
<?php
$stmt = $pdo->query("SELECT * FROM Parts");
while ($product = $stmt->fetch(PDO::FETCH_ASSOC)) {
?>
<td>
<?php
echo '<button type="button" class="testButton" onclick="test()">
<img src="images/APA802AC.jpg">
</button>';
?>
</td>
<td class="td-manufacturer">
<h6>MANUFACTURER</h6>
<p>
<?php
echo $product["Manufacturer"];
?>
</p>
</td>
<script type="text/javascript">
function test(itemid) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200)
{
window.location.assign("pageContent.php").innerHTML = xhr.responseText;
}
}
xhr.open("GET", "pageContent.php?id=" + itemid, true);
xhr.send();
}
</script>
页面内容.php
此页面也有表格,但没有网格。 我需要在这里点击上一页按钮 PartsID(1,2,3,etc...) 并在我回显 $row 的地方显示该产品信息。
<div class="productInfo">
<h2 class="productTitle">
<?php
echo $row["PartTitle"];
?>
</h2>
</div>
<td>
<?php
echo $row["Availability"];
?>
</td>
<td>
<?php
echo $row["Price"]
?>
</td>
我真的希望得到一些详细的帮助。 我已经尝试了各种不同的代码和研究变体,我用很少的时间学习,对 php 和 javascript/ajax 不熟悉,所以请放轻松。 我希望我说的很清楚并且有道理。 谢谢!
首先,你的线路
window.location.assign("pageContent.php").innerHTML = xhr.responseText;
不是在做你认为它在做的事情。 “location.assign”加载不同的页面。 还没有尝试过自己是否会通过错误来控制innerHTML取消引用,但是您应该检查浏览器中的网络选项卡,很可能您会看到2个对pageContent的调用:一个带有参数(您的ajax调用)和第二个没有(您的 location.assign 电话)。
其次,如果你有一个多页的 php 应用程序,你可能不需要 ajax,因为页面内容是在服务器端生成的,然后它就变成了静态的。 Ajax 更适合具有动态内容的单页应用程序。
无需过多更改您的应用程序代码,请尝试删除 ajax 调用并仅使用窗口位置:
<script type="text/javascript">
function test(itemid) {
window.location.assign(_your_base_url_ + "pageContent.php?id=" + itemid)
}
</script>
我相信这将允许您在 $_GET 查询中查看服务器端的参数。
PS 我最近没有做 php 所以上面的答案或多或少是一个概念。 您可能需要查看 php 文档以了解如何访问参数。 阅读有关这个主题的一些教程并不是一个坏主意,因为您似乎在理解使用 php 进行 Web 应用程序的整体概念方面确实存在一些差距。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.