AJAX未将数据发布到PHP

问题描述 投票:0回答:1

[试图找出为什么我的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
    }
}
?>
php ajax post
1个回答
0
投票

我无法对其进行测试,但是请尝试在您的JS文件中进行更改:

data: 'keyword=' + $(this).val(),

为此:

data: {keyword: $(this).val(),

而且我强烈建议将此行添加到PHP文件的开头:

$keyword = mysqli_real_escape_string ( $conn, $_POST['keyword'] );

上面的行防止SQL注入。再说一次,由于我目前在移动设备上,因此无法对其进行测试。但是,如果它不起作用,请告诉我,我将尝试查看我的代码有什么问题。

© www.soinside.com 2019 - 2024. All rights reserved.