繁体   English   中英

将 PHP 变量从一个页面传递到另一个页面以从按钮获取正确的项目

[英]Pass PHP variable from one page to another to get correct item from button

我有 2 个页面, content.phppagecontent.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM