阿賈克斯:$(".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) == " ")
表示標簽的最后一個字符是空格。如果用戶點擊空格,即他/她顯然沒有完成搜索,則將觸發您的搜索?,F在,如果您在沒有點擊空格的情況下進行測試,則不會觸發搜索。
調試器
您的 NetBeans 調試器可能無法工作。您應該檢查瀏覽器中的“網絡”選項卡,看看是否發送了請求。如果是這樣,請嘗試從 PHP 發回一個虛擬答案作為測試,看看它是否被觸發。
斷點的位置
您應該將斷點放置在肯定會被擊中的位置。由于搜索未命中,因此可能存在請求(請參閱上一點),但由于某種原因未觸發該文件(檢查服務器設置)。
編輯
事實證明這是一個語法錯誤,以語法錯誤的方式初始化數組,因此 PHP 解析器已損壞并且調試器無法工作。
- 2 回答
- 0 關注
- 140 瀏覽
添加回答
舉報
0/150
提交
取消