我有一个包含3个表,一个HTML和一个PHP文件的数据库。
数据库: tbl_customers
+---------+-----------+
| ID | Name |
+---------+-----------+
| 1 |Customer_1 |
+---------+-----------+
| ... | ... |
+---------+-----------+
tbl_data
+---------+---------+------+
| ID | Data 1 | C_ID |
+---------+---------+------+
| 1 |1 | 1 |
+---------+---------+------+
| ... | ... |... |
+---------+---------+------+
依旧......
我的HTML输出
<table class="table table-striped" id="tbl_customers">
<thead>
<tr>
<th>Customer-ID</th>
<th>Customer Name</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Customer_1</td>
<td><button class="btn btn-primary btn-xs" id="set" type=
"button">Select</button></td>
</tr>
<tr>
<td>2</td>
<td>Customer_2</td>
<td><button class="btn btn-primary btn-xs" id="set" type=
"button">Select</button></td>
</tr>
<!-- ... -->
</tbody>
</table>
使用以下AJAX制作:
$(function ()
{
$.ajax({
url: 'db-api.php', //the script to call to get data
data: "", //you can insert url argumnets here to pass to db-api.php
//for example "id=5&parent=6"
dataType: 'json', //data format
success: function(data) //on recieve of reply
{
var output_customers= $("#tbl_customers");
for (var i=0; i<data.length; i++) {
$("<tr><td>"+data[i][0]+"</td><td>"+data[i][1]+"<td><button type='button' class='btn btn-primary btn-xs' id='set''><span class='glyphicon glyphicon-download'></span> Select</button></td></tr>").appendTo(output_customers);
}
}
});
});
我的db-api.php
<?php
$host = "127.0.0.1";
$user = "root";
$pass = "";
$db = "pd_dev_01";
$tbl_data = "data";
$tbl_customers = "customers";
//--------------------------------------------------------------------------
// 2) Connection to DB
//--------------------------------------------------------------------------
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($db, $con);
//--------------------------------------------------------------------------
// 3) SQL
//--------------------------------------------------------------------------
$result = mysql_query("SELECT * FROM $tbl_customers"); // Query
$array = array(); // Array erzeugen
while ($row = mysql_fetch_row($result)) {
$array[] = array($row[0], $row[1]);
}
//--------------------------------------------------------------------------
// 4) Output as JSON
//--------------------------------------------------------------------------
echo json_encode($array);
?>
在我的HTML中,我对我的PHP文件执行AJAX请求以获取所有客户名称(从tbl_customers中选择*)。 我想要的是,用户现在可以单击结果并我执行另一个请求以获取tbl_data中具有相同客户ID tbl_customers的所有记录。
我将如何实现这一目标?
答案 0 :(得分:1)
有很多方法可以实现这一目标。一种方法是,您可以将客户ID放在您打印出的行的数据属性上,并使用它来执行查询。
HTML
<tr data-customer-id="4">...</tr>
的Javascript
$('table').on('click', 'tr[data-customer-id]', function () {
var $tr = $(this),
id = $tr.data('customer-id');
$.get('/customer', { id: id }, function (customer) {
$tr.after('<tr><td>' + customer.name + '</td></tr>')
});
});
然后在您的PHP中,您可以使用已清理的$_GET['id']
版本来执行查询。
答案 1 :(得分:0)
您可以在单个ajax请求中完成此操作。
使用数据1的连续获取单个查询中的所有记录。 查询是
选择C.name,C.id,GROUP_CONCAT(D.data1 SEPARATOR'#')AS ddata1 from tbl_customers C inner join tbl_data D ON C.id = D.C_id Group by D.id;