如果我有多个不同类别的按钮,如何进行 ajax 调用,其中包含 php 查询
How to make ajax call, which has php query if i have multiple buttons with different classes
我不知道我问的是否正确,但我会尝试:
例如,我有 5 个按钮,每个按钮都有不同的 classes。
<button class="table1">Table1</button>
<button class="table2">Table2</button>
// etc... //
我有脚本,如果单击按钮,它会启动 ajax 调用:
$(".table1").click(function(){
$.ajax({url:"test.php",success:function(result){
$(".result").html(result);
}});
});
我有 php 脚本,应该 select table 通过点击按钮 class (这是我的问题):
foreach($db->query('SELECT * FROM table1') as $row) {
echo '<div><b>'.$row['info1'].'</b></div>';
echo '<span>'.$row['info2'].'</span><br/>';
echo '<span>'.$row['info3'].'</span>';
echo '<br/><br/><br/>';
}
问题:
这所有的脚本都在工作,但是,不知何故我需要做的是,如果我点击 table1,那么 php 查询应该 select table1,如果点击 table2,比查询应该select table2 ...等等
我不擅长ajax。我只知道 php 基础知识。
抱歉英语不好。
拆分您的 CSS class,例如
<button class="clickable" data-tableid="1">...</button>
<button class="clickable" data-tableid="2">...</button>
然后将您的点击句柄仅附加到 .clickable
class。单击事件将包括单击了哪个元素,您可以从中提取该特定按钮的数据属性:
$('.clickable').click(function(e) { // 'e' is the click event
sourceElement = e.target; // get the button which was clicked
tableid = sourceElement.dataset.tableid; // extract its tableid data attribute
... ajax call here ...
});
我建议修改 HTML:
<button id="table1" class="table">Table1</button>
<button id="table2" class="table">Table2</button>
和javascript代码:
$(".table").click(function(e){
$.ajax({url:"test.php?table=" + $(e.target).attr('id'),success:function(result){
$(".result").html(result);
}});
});
然后您可以从 $_GET['table'] 变量中检查在 PHP 中点击了 table。
只需复制、粘贴一个运行这段代码
在index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<button id="table1" class="table">Table1</button>
<button id="table2" class="table">Table2</button>
<button id="table3" class="table">Table3</button>
<script>
$( ".table" ).click(function() {
var table = $(this).attr('id');
$.ajax({//create an ajax request to load_page.php
type: "POST",
url: "sample.php",
data:{"data":table},
success: function(data) {
if (data) {
alert(data);
}
else {
alert('Successfully not posted.');
}
}
});
});
</script>
</body>
</html>
在sample.php
<?php
if(isset($_POST['data'])){
$table = $_POST['data'];
foreach($db->query("SELECT * FROM '$table'") as $row) {
echo $db->query("SELECT * FROM '$table'");
echo '<div><b>'.$row['info1'].'</b></div>';
echo '<span>'.$row['info2'].'</span><br/>';
echo '<span>'.$row['info3'].'</span>';
echo '<br/><br/><br/>';
}
}
?>
我不知道我问的是否正确,但我会尝试:
例如,我有 5 个按钮,每个按钮都有不同的 classes。
<button class="table1">Table1</button>
<button class="table2">Table2</button>
// etc... //
我有脚本,如果单击按钮,它会启动 ajax 调用:
$(".table1").click(function(){
$.ajax({url:"test.php",success:function(result){
$(".result").html(result);
}});
});
我有 php 脚本,应该 select table 通过点击按钮 class (这是我的问题):
foreach($db->query('SELECT * FROM table1') as $row) {
echo '<div><b>'.$row['info1'].'</b></div>';
echo '<span>'.$row['info2'].'</span><br/>';
echo '<span>'.$row['info3'].'</span>';
echo '<br/><br/><br/>';
}
问题: 这所有的脚本都在工作,但是,不知何故我需要做的是,如果我点击 table1,那么 php 查询应该 select table1,如果点击 table2,比查询应该select table2 ...等等
我不擅长ajax。我只知道 php 基础知识。
抱歉英语不好。
拆分您的 CSS class,例如
<button class="clickable" data-tableid="1">...</button>
<button class="clickable" data-tableid="2">...</button>
然后将您的点击句柄仅附加到 .clickable
class。单击事件将包括单击了哪个元素,您可以从中提取该特定按钮的数据属性:
$('.clickable').click(function(e) { // 'e' is the click event
sourceElement = e.target; // get the button which was clicked
tableid = sourceElement.dataset.tableid; // extract its tableid data attribute
... ajax call here ...
});
我建议修改 HTML:
<button id="table1" class="table">Table1</button>
<button id="table2" class="table">Table2</button>
和javascript代码:
$(".table").click(function(e){
$.ajax({url:"test.php?table=" + $(e.target).attr('id'),success:function(result){
$(".result").html(result);
}});
});
然后您可以从 $_GET['table'] 变量中检查在 PHP 中点击了 table。
只需复制、粘贴一个运行这段代码
在index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<button id="table1" class="table">Table1</button>
<button id="table2" class="table">Table2</button>
<button id="table3" class="table">Table3</button>
<script>
$( ".table" ).click(function() {
var table = $(this).attr('id');
$.ajax({//create an ajax request to load_page.php
type: "POST",
url: "sample.php",
data:{"data":table},
success: function(data) {
if (data) {
alert(data);
}
else {
alert('Successfully not posted.');
}
}
});
});
</script>
</body>
</html>
在sample.php
<?php
if(isset($_POST['data'])){
$table = $_POST['data'];
foreach($db->query("SELECT * FROM '$table'") as $row) {
echo $db->query("SELECT * FROM '$table'");
echo '<div><b>'.$row['info1'].'</b></div>';
echo '<span>'.$row['info2'].'</span><br/>';
echo '<span>'.$row['info3'].'</span>';
echo '<br/><br/><br/>';
}
}
?>