我正在尝试使用phpajax从mysql表中获取数据。当我从select选项中选择filter时,它会显示,但是当我更改selectanother值时,它不会重置表,而是用旧结果附加新结果。当页面加载时,它不应该过滤,它应该在选择过滤选项时过滤。
我的php从数据库获取数据。
<?php
if(!empty($_POST["assign_to"])){
$filter = $_POST["assign_to"];
$sql = "SELECT * FROM projects WHERE assign_to ='".$filter ."' ";
$result = mysqli_query($connect, $sql);
$output = array();
while($row = mysqli_fetch_assoc($result))
{
$output[] = $row;
}
echo json_encode($output);
}
筛选html
<select id="user_ids" class="form-control" name="assign_to" required="">
<option value="">Select User</option>
<option value="85">Manager</option>
<option value="86">User 1</option>
<option value="87">User 2</option>
<option value="88">User 3</option>
</select>
ajax调用脚本
function fetch_project_data_filtered() {
$("#user_ids").change(function(){
var assign_to = $(this).val();
var dataString = "assign_to="+assign_to;
//alert(assign_to);
$.ajax({
type: "POST",
url: "x-fetch.php",
data: dataString,
dataType:"json",
success: function(data)
{
for(var count=0; count<data.length; count++)
{
var html_data = '<tr><td>'+data[count].project_id+'</td>';
html_data += '<td data-name="project_name" class="project_name" data-type="text" data-pk="'+data[count].project_id+'">'+data[count].project_name+'</td>';
html_data += '<td data-name="created_on" class="created_on" data-type="text" data-pk="'+data[count].project_id+'">'+data[count].created_on+'</td>';
html_data += '<td data-name="target_date" class="target_date" data-type="date" data-pk="'+data[count].project_id+'">'+data[count].target_date+'</td>';
html_data += '<td data-name="assign_to" class="assign_to" data-type="text" data-pk="'+data[count].project_id+'">'+data[count].assign_to+'</td>';
html_data += '<td data-name="current_status" class="current_status" data-type="textarea" data-pk="'+data[count].project_id+'">'+data[count].current_status+'</td>';
html_data += '<td data-name="previous_status" class="previous_status" data-type="textarea" data-pk="'+data[count].project_id+'">'+data[count].previous_status+'</td>';
html_data += '<td data-name="cito_comment" class="cito_comment" data-type="textarea" data-pk="'+data[count].project_id+'">'+data[count].cito_comment+'</td>';
$('#project_data').append(html_data);
}
}
});
});
}
4条答案
按热度按时间qf9go6mv1#
您可以在发送ajax之前使用empty方法
g6ll5ycj2#
使用
而不是
在你的改变脚本里。
3okqufwl3#
您可以从ajax页面以html表的形式返回表。
hrml选择框。
运行onsubmit()的javascript函数。
ajax\u searchdata.php页面
希望对您有所帮助:)
q3qa4bjr4#