阿贾克斯:$(".searchbar").keyup(function() { let search = $(".searchbar").val(); if (search.charAt(search.length-1) == " ") { $.post("search.php", { search: search }); }});所有这些代码“有效”,因为我测试过它console.log()问题是 search.php 没有被打开。我知道它没有被打开,因为我使用 NetBeans 在该文件中设置了断点,但它从未命中。Search.php(未完成):<?php require_once 'core/init.php'; if (Input::exists()) { $_db = Database::getInstance(); $links[]; $databaseResults[]; $searchTerms[] = explode(' ', Input::get('search')); foreach ($searchTerms as $searchTerm) { $databaseResults = $_db->search('links', array("name", "hash", "file_extension", "created"), $searchTerm, "%%"); } } ?>Ajax 对我有用:$(".votebutton").click(function() { let vote = $(this).val(); let token = $(this).parent().find(".token").val(); let link_hash = $(this).parent().find(".link_hash").val(); $.post("vote.php", { vote: vote, token: token, link_hash: link_hash });});
2 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
事实证明 PHP 文件是问题所在。
看来你不能这样做:
$links[]; $databaseResults[];
创建一个数组。
由于 PHP 文件有一个错误,它甚至没有命中第一行,这让我很困惑。
慕码人2483693
TA贡献1860条经验 获得超9个赞
假设 URL 和您的系统兼容并且 search.php 应该运行,那么您需要注意一些问题
条件
(search.charAt(search.length-1) == " ")
表示标签的最后一个字符是空格。如果用户点击空格,即他/她显然没有完成搜索,则将触发您的搜索。现在,如果您在没有点击空格的情况下进行测试,则不会触发搜索。
调试器
您的 NetBeans 调试器可能无法工作。您应该检查浏览器中的“网络”选项卡,看看是否发送了请求。如果是这样,请尝试从 PHP 发回一个虚拟答案作为测试,看看它是否被触发。
断点的位置
您应该将断点放置在肯定会被击中的位置。由于搜索未命中,因此可能存在请求(请参阅上一点),但由于某种原因未触发该文件(检查服务器设置)。
编辑
事实证明这是一个语法错误,以语法错误的方式初始化数组,因此 PHP 解析器已损坏并且调试器无法工作。
- 2 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消