从另一个PHP页面加载内容

时间:2019-09-10 15:45:44

标签: javascript php jquery mysql ajax

我有三个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在index.php的div中加载product_detail.php,但未引用该行的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中显示?

1 个答案:

答案 0 :(得分:-1)

你有两种方法。

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