簡體   English   中英

使用AJAX從PHP檢索數據以發送到其他PHP文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM