[试图找出为什么我的AJAX没有发布到我的PHP时出现问题。我可以说它正在加载PHP代码,如果在查询中删除了对关键字check和parameter的引用,它将运行良好并从数据库加载所有task_types。但是指定它需要匹配输入值,这是行不通的,因为它没有发布到PHP。有什么想法吗?
HTML
<input type="text" name="task_type" id="task_type" value="" />
<div id="suggesstion-box"></div>
AJAX
$(document).ready(function() {
$('#task_type').keyup(function(){
console.log($(this).val());
$.ajax({
type: 'POST',
url: 'includes/ajax/ajax_search_task_types.php',
data: 'keyword=' + $(this).val(),
success: function(data){
console.log('hello'+data);
$('#suggesstion-box').show();
$('#suggesstion-box').html(data);
$("#task_type").css("background","#FFF");
}
});
});
});
function selectCountry(val) {
$("#task_type").val(val);
$("#suggesstion-box").hide();
}
AJAX_SEARCH_TASK_TYPES.PHP
<?php
if(isset($_POST['keyword'])) {
require_once('../../lib.inc.php');
$query = "SELECT DISTINCT task_type FROM task WHERE task_type LIKE '".$db->prep($_POST['keyword'])."%' AND task_type <> 'Unassigned' AND user_id = ".$db->prep($user_id)." ORDER BY task_type";
$resT = $db->query($query,'assoc');
if(!empty($resT)) {
?>
<ul id="task-list">
<?php
foreach($resT as $task_type_value) { ?>
<li onClick="selectTask('<?php echo $task_type_value['task_type']; ?>');"><?php echo $task_type_value['task_type']; ?></li>
<?php }?>
</ul>
<?php
}
}
?>
我无法对其进行测试,但是请尝试在您的JS文件中进行更改:
data: 'keyword=' + $(this).val(),
为此:
data: {keyword: $(this).val(),
而且我强烈建议将此行添加到PHP文件的开头:
$keyword = mysqli_real_escape_string ( $conn, $_POST['keyword'] );
上面的行防止SQL注入。再说一次,由于我目前在移动设备上,因此无法对其进行测试。但是,如果它不起作用,请请告诉我,我将尝试查看我的代码有什么问题。