【问题标题】:load content from one php page in another从另一个 php 页面加载内容
【发布时间】:2019-09-10 15:45:44
【问题描述】:

我有三个 PHP 页面 index.php、fetch_data.php 和 product_detail.php。

我的 index.php 有三栏:过滤选项、产品面板、详细说明。

当用户点击产品面板中的产品时,详细描述应该加载product_detail.php。

当我在 fetch_data 中有 target="_blank" 时,它可以工作并显示产品详细信息,但我不希望它显示在新窗口中。 index.php 中的所有内容都必须位于同一页面上。我需要它来工作:onclick="loadQueryResults()"。我认为的问题是,如果在 index.php 中声明,我不确定该方法是否可以在 product_detail.php 中访问。

我尝试使用 javascript 将 product_detail.php 加载到 index.php 的 div 中,但它没有引用行的 id。

<!-- index.php =============================-->
<div class="col-md-6">
<br />
<div class="row filter_data"></div><!--Contains output of filtered data-->
</div>

<div class="col-md-4">
<br />
<h4>Product Detail</h4>

<script type="text/javascript">
function loadQueryResults() 
{
$('#DisplayDiv').load("product_detail.php?id=<?PHP $row['id'] ?>");
return false;
}                    
</script>
<div id="DisplayDiv" >
<!-- This is where product_detail.php should be inserted -->
</div>
</div> 

//fetch_data.php=================================
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$total_row = $statement->rowCount();
$output = '';
if($total_row > 0)
{
foreach($result as $row)
{ 
$GLOBALS['id'] = $row['id'];

$output .= '
<div class="col-sm-4 col-lg-8 col-md-8">
<div style="border:1px solid #ccc; border-radius:5px; padding:10px; margin-bottom:10px; height:300px;">

<p align="center">

<strong><button type="button" onclick="loadQueryResults()" >'. $row['company'] .'</button>'. $row['company'] .'</strong></p>
ID : '. $row['id'].'<br />
Detail : <br />'. $row['detail'] .' <br /><br />
</p>
</div>
</div>
';
}
}

//product_detail.php=====================================

$connect = new mysqli($host, $dbUsername, $dbPassword, $dbname);
if (mysqli_connect_error()) {
die('Connect Error('. mysqli_connect_errno().')'. mysqli_connect_error());
} else {

$id = $_GET['id'];
$id = mysqli_real_escape_string($connect,$id);
$query = "SELECT * FROM `db` WHERE `id`='" . $id . "'";
$result = mysqli_query($connect,$query);

while($row = mysqli_fetch_array($result)) {
echo "<br/><br/>";
echo "Company: <b>" .$row['company']. "</b>";
echo "Detail: <b>" .$row['detail']. "</b>";

}}


如何让product_detail 显示在index.php 页面的DisplayDiv 中?

【问题讨论】:

  • 没有任何东西调用你的loadQueryResults()函数...
  • 了解 AJAX,这是如何在不导航到其他页面的情况下更改页面内容的基本方法。 en.wikipedia.org/wiki/Ajax_(programming)
  • @David 我试图将其称为 onclick="loadQueryResults()" 但没有用,并且不知道如何从 fetch_data.php 调用它..
  • @ian:不在您向我们展示的代码中,您没有。或者,如果您使用过去时表示您已删除该尝试,那么这仍然可以解释为什么它不起作用......如果没有调用它,该函数将不会执行。
  • @David True。我现在已经编辑了它。谢谢。

标签: javascript php jquery mysql ajax


【解决方案1】:

你有两种方法。

  1. 将两个文件合并为一个并根据您的设计编写代码。
  2. 使用 AJAX 方法从第二个 php url 获取数据并显示在所需的文件中。

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 2017-03-14
    • 2019-02-19
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2011-05-05
    相关资源
    最近更新 更多