我在描述这个问题时遇到了困难,但在这里..
我有 home.php,几乎只是:
<body>
<div id='leftColumn'>
<?php include ('includes/roomQuery.php')
</div>
</body>
现在, roomQuery.php 从表“rooms”中回显我的 sql 列“room_name”,如下所示:
echo "<td><a href=\"room.php?room=$roomName\">$roomName</a></td>";
任何房间链接都会将我带到 room.php 并通过 $_GET 向页面填充更多与 $roomName 相关的查询。
room.php 基本上是:
$get = $_GET['room'];
$query
while($row = $result->fetch_assoc()){
echo $query
这完全符合实际情况。
====================================
但是,我正在努力使我的站点流量更好,并且一直在试用 jQuery .load 函数。到目前为止,我已将 roomQuery.php 更改为:
echo "<td><button>$roomName</button></td>";
这是我用 room.php #page 替换 home.php #page 的 jQuery:
$(document).ready(function(){
$("button").click(function(){
$("#page").load("room.php #page",function(responseTxt,statusTxt,xhr){
if(statusTxt=="success")
alert("Success");
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
});
});
当我单击 roomQuery.php 吐出的任何按钮时,它会完美地替换 #page 但我无法理解如何/是否可以将 $_GET['room'] 发送到 room.php 以便在加载#page 时,信息仍然与我点击的房间有关。如果我将 jQuery 更改为
$("#page").load("room.php?room=CL%20124 #page"
然后 #page 将填充专门针对房间 CL 124 的数据。是否可以在单击按钮时将从 roomsQuery.php 输出的按钮文本发布到 room.php #page?
最佳答案
是的,你可以pass data进入.load()
作为第二个参数调用。
首先,您需要弄清楚如何从 DOM 获取房间 ID 到您的 jQuery 调用中,也许您可以像这样在按钮元素上使用数据属性:
<button data-room-id="123">Click me</button>
然后像这样使用 jQuery:
$("button").click(function(){
// define your room ID here, however you do it
var your_room = $(this).data('room-id');
$("#page").load(
"room.php #page",
{
room: your_room
},
function(responseTxt,statusTxt,xhr){
if(statusTxt=="success")
alert("Success");
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
}
);
});
编辑:刚刚注意到您实际上可能正在使用按钮的值作为您的房间 ID,如果是这样,请使用此定义:
var your_room = $(this).val();
如果您希望此值中包含空格或非字母数字字符,您可能需要考虑 URL encoding在你发送它之前。
关于php - SQL 查询创建按钮,可以单击这些按钮以 'hopefully' 更改 DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25194712/