2 php ajax jquery json datatables
我是 JQUERY 的新手,我正在尝试搜索某些内容,并且根据搜索到的文本,我正在执行 ajax 调用,该调用将调用 php 函数,并且 PHP 将使用 JSON 数据返回我。我想以数据表形式显示返回的数据。我有我的 PHP 文件 table.php 和 JavaScript 文件 jss.js 以及我的 main.php。PHP 文件正在返回 JSON 数据,我可以使用警报来显示它。
我想知道如何在数据表中显示它。
<div>
<input type="text" name="search_query" id="search_query" placeholder="Search Client" size="50" autocomplete="off"/>
<button id="search" name="submit">Search</button>
</div>
Run Code Online (Sandbox Code Playgroud)
我的 ajax/jss.js 文件
$(document).ready(function(){
$('#search').click(function(){
var search_query = $('#search_query').val();
if(search_query !='')
{
$.ajax({
url:"table.php",
method:"POST",
data:{search_query:search_query},
success: function(data)
{
alert("HEKKI "+data);
}
});
}
else
{
alert("Please Search again");
}
});
});
Run Code Online (Sandbox Code Playgroud)
我的 table.php 文件
<?php
$data=array();
$dbc = mysqli_connect('localhost','root','','acdc') OR die('Could not connect because: '.mysqli_connect_error());
if (isset($_REQUEST['search_query']))
{
$name = $_REQUEST['search_query'];
}
if($dbc)
{
if (!empty($name))
{
$sql = "select c.res1 res1,
cc.res2 res2,
cc.res3 res3,
cc.res4 res4,
cc.res5 res5
from table1 c
inner join table2 cc
on c.id = cc.id
where c.name like '".$name."%'
and cc.ENABLED = 1";
$res = mysqli_query($dbc,$sql);
if(!(mysqli_num_rows($res)==0))
{
while($row=mysqli_fetch_array($res))
{
$data['RES1'] = $row['res1'];
$data['RES2'] = $row['res2'];
$data['RES3'] = $row['res3'];
$data['RES4'] = $row['res4'];
$data['RES5'] = $row['res5'];
}
}
else
{
echo "<div style='display: block; color:red; text-align:center'><br/> Not Found,Please try again!!!</div>";
}
}
}
echo json_encode($data);
/*
*/
?>
Run Code Online (Sandbox Code Playgroud)
您能指导我如何在主页上显示结果吗?
将 utf8 设置为字符集可能是一个好主意。如果表中有不同的字符集,您将收到 JSON 错误:
mysqli_set_charset($dbc, 'utf8');
Run Code Online (Sandbox Code Playgroud)
然后使用mysqli_fetch_assoc代替mysqli_fetch_array. 您希望field: value记录转换为 JSON :
$data = array();
while($row=mysqli_fetch_assoc($res)) {
$data[] = $row;
}
Run Code Online (Sandbox Code Playgroud)
输出 JSON :
echo json_encode( array('data' => $data) );
Run Code Online (Sandbox Code Playgroud)
现在您可以直接将其与 dataTables 一起使用:
<table id="example"></table>
Run Code Online (Sandbox Code Playgroud)
$('#example').DataTable({
ajax: {
url: 'table.php'
},
columns: [
{ data: 'res1', title: 'res1'},
{ data: 'res2', title: 'res2'},
//etc..
]
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7288 次 |
| 最近记录: |