[英]Retrieving data from PHP using AJAX to send to different PHP file
好的,我有:
一個查詢數據庫並顯示查詢結果的PHP文件,一個使用AJAX顯示結果的HTML文件,以及另一個我需要將數據從第一個PHP文件發送到的PHP文件。
我怎樣才能做到這一點?
我的第一個PHP文件顯示:
$result = mysqli_query($db_server, $query);
if (!$result) die("Database access failed: " . mysqli_error($db_server));
while($row = mysqli_fetch_array($result)){
$str_shopresult .= "<div class='result'><a id='shoplink' href='#shop'><strong><div id='hiddenid'>" .
$row['id'] . "</div>" .
$row['name'] . "</strong><br><br>" .
$row['address'] . "<br><br><i>" .
$row['sold'] . "</i></div></a>";
}
因此,AJAX將其引入並以HTML顯示。 單擊鏈接時是否可以發送ID字段,以便可以在另一個PHP文件中使用該字段顯示該特定ID的數據。
$( "#result" ).click(function() {
$.ajax({
type: "POST",
url: "external-data/shop.php",
data: $("#hiddenid"),
success: function (data) {
$("#individualshop").load("external-data/shop.php");
}
});
這樣來自#hiddendiv($ row ['ID'])的數據將被發送到新的PHP文件。 這不起作用。
shop.php具有以下代碼:
//get shop ID
$shopid = $_POST['ID'];
mysqli_select_db($db_server, $db_database);
$query = "SELECT * FROM shops WHERE ID='$shopid'";
$result = mysqli_query($db_server, $query);
if (!$result) die("Database access failed: " . mysqli_error($db_server));
while($row = mysqli_fetch_array($result)){
$str_shops .= "<div class='searchresult'><strong>" .
$row['name'] . "</strong><br><br>" .
$row['address'] . "<br><br><i>" .
$row['sold'] . "</i></div>";
}
但是我不確定如何獲取ID?
基本上,我需要能夠單擊每個搜索結果,並讓另一個PHP文件引入與搜索結果的ID相關聯的特定數據。 有什么建議么??
提前致謝!
用這個;
$( "#result" ).click(function() {
$.ajax({
type: "POST",
url: "external-data/shop.php",
data: "ID=" + $("#hiddenid"),
success: function (data) {
$("#individualshop").html(data);
}
});
});
注意:不要忘記在shop.php
返回html
您可以使用javascript或jquery來獲取點擊的元素ID,並將其放在php鏈接的GET參數中
ajax目標將是ajax.php?id = test
然后通過$_GET['id']
獲取id
的值
我不是100%確定這是您想要的,但這是一種方法。
這是您的第一個php文件。 我已經為其添加了onclick偵聽器,因此,當用戶單擊一行時,它將觸發傳遞$ row ['id']變量的JavaScript。
$result = mysqli_query($db_server, $query);
if (!$result) die("Database access failed: " . mysqli_error($db_server));
while($row = mysqli_fetch_array($result)){
$str_shopresult .= "<div onclick='someFunction(" . $row['id'] . ")' class='result'><div id='shoplink' href='#shop'><strong><div id='hiddenid'>" .
$row['id'] . "</div>" .
$row['name'] . "</strong><br><br>" .
$row['address'] . "<br><br><i>" .
$row['sold'] . "</i></div></div>";
}
然后將此腳本添加到頁面的標題。
<script>
function someFunction(d){
var response = httpGet("http://yourdomain.com/newphpfile.php?page_id=" +d);
document.getElementById('someResultArea').innerHTML = response;
}
function httpGet(theUrl)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "POST", theUrl, false );
xmlHttp.send();
return xmlHttp.responseText;
}
</script>
然后,您的新php文件應執行以下操作。
newphpfile.php
<?php
session_start();
$page_id = strip_tags($_GET['page_id']);
$processResult = 'handle your result';
echo $processResult;
?>
我希望這能夠幫到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.