为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax 帖子未成功打开 PHP 文件

Ajax 帖子未成功打开 PHP 文件

PHP
慕姐8265434 2023-08-26 17:38:38
阿贾克斯:$(".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 文件有一个错误,它甚至没有命中第一行,这让我很困惑。


查看完整回答
反对 回复 2023-08-26
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

假设 URL 和您的系统兼容并且 search.php 应该运行,那么您需要注意一些问题

条件

(search.charAt(search.length-1) == " ")

表示标签的最后一个字符是空格。如果用户点击空格,即他/她显然没有完成搜索,则将触发您的搜索。现在,如果您在没有点击空格的情况下进行测试,则不会触发搜索。

调试器

您的 NetBeans 调试器可能无法工作。您应该检查浏览器中的“网络”选项卡,看看是否发送了请求。如果是这样,请尝试从 PHP 发回一个虚拟答案作为测试,看看它是否被触发。

断点的位置

您应该将断点放置在肯定会被击中的位置。由于搜索未命中,因此可能存在请求(请参阅上一点),但由于某种原因未触发该文件(检查服务器设置)。

编辑

事实证明这是一个语法错误,以语法错误的方式初始化数组,因此 PHP 解析器已损坏并且调试器无法工作。


查看完整回答
反对 回复 2023-08-26
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信