Ajax 帖子未成功打开 PHP 文件

阿贾克斯:


$(".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

   });

});


慕姐8265434
浏览 100回答 2
2回答

暮色呼如

事实证明 PHP 文件是问题所在。看来你不能这样做:$links[]; $databaseResults[];创建一个数组。由于 PHP 文件有一个错误,它甚至没有命中第一行,这让我很困惑。

慕码人2483693

假设 URL 和您的系统兼容并且 search.php 应该运行,那么您需要注意一些问题条件(search.charAt(search.length-1)&nbsp;==&nbsp;"&nbsp;")表示标签的最后一个字符是空格。如果用户点击空格,即他/她显然没有完成搜索,则将触发您的搜索。现在,如果您在没有点击空格的情况下进行测试,则不会触发搜索。调试器您的 NetBeans 调试器可能无法工作。您应该检查浏览器中的“网络”选项卡,看看是否发送了请求。如果是这样,请尝试从 PHP 发回一个虚拟答案作为测试,看看它是否被触发。断点的位置您应该将断点放置在肯定会被击中的位置。由于搜索未命中,因此可能存在请求(请参阅上一点),但由于某种原因未触发该文件(检查服务器设置)。编辑事实证明这是一个语法错误,以语法错误的方式初始化数组,因此 PHP 解析器已损坏并且调试器无法工作。
打开App,查看更多内容
随时随地看视频慕课网APP