Javascript 使用AJAX从PHP检索数据以发送到不同的PHP文件
好的,我有: 查询数据库并显示查询结果的PHP文件, 一个HTML文件,使用AJAX和 我需要将第一个PHP文件中的数据发送到另一个PHP文件 我该怎么做 我的第一个PHP文件显示:Javascript 使用AJAX从PHP检索数据以发送到不同的PHP文件,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,好的,我有: 查询数据库并显示查询结果的PHP文件, 一个HTML文件,使用AJAX和 我需要将第一个PHP文件中的数据发送到另一个PHP文件 我该怎么做 我的第一个PHP文件显示: $result = mysqli_query($db_server, $query); if (!$result) die("Database access failed: " . mysqli_error($db_server)); while($row = mysqli_fetch_arra
$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>";
}
这样来自hiddendiv$行['ID']的数据将被发送到新的PHP文件。这不管用
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
然后通过$\u 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;
?>
我希望这能帮到你。你说的“这不起作用”是什么意思?外部数据/shop.php上的内容是什么?@leonardo I更新了上述帖子,对不起!通过传递以下内容来检索ID:data:{ID:$hiddenid},而不是data:$hiddenid,@Kathryn请看我的答案,这是什么$individualshop.loadexternal-data/shop.php;为了在ajax中取得成功?@HüseyinBABAL引入shop.php查询的结果,但我认为应该使用$individualshop.htmldata?它不允许我在php文件中添加onclick函数,因为我修正了语法。再试一次,谢谢。虽然当我单击结果并回显$page_id时,它显示为未定义,但它在哪里未定义?当出现第一个页面时,您应该能够检查该行的html,并查看侦听器中是否写入了正确的行Id。此外,您还可以切换到console选项卡,观察JS是否出现问题。在新的php文件中,当我单击一个结果并在新的php文件中回显id时,它只是说未定义。当检查元素时,括号中没有任何内容,然后在新页面上显示undefined。谢谢你的帮助!
<?php
session_start();
$page_id = strip_tags($_GET['page_id']);
$processResult = 'handle your result';
echo $processResult;
?>