簡體   English   中英

Ajax - jQuery 和 Ajax 錯誤/不工作

[英]Ajax - jQuery and Ajax errors/not working

我正在構建一個網頁,其中包含一個div ,其中包含通過 PHP 從 MySql 數據庫中檢索到的一些數據。 這個 div 顯示了一些產品,在它的左邊有一個帶有不同類別的簡單導航欄。 我試圖做的是,當用戶單擊此導航欄的某個類別時, div的內容將發生變化,顯示該類別的所有產品都存儲在 db 中。 所以我嘗試使用 Ajax(順便說一句,我的第一次),但我似乎無法讓它工作。 我的項目結構是這樣的:

父目錄

  • php > index.php
  • css > index.css
  • js > index.js
  • img > 圖片在這里
  • ajax> 產品-ajax.js / 產品-ajax.php

index.php 文件鏈接到 index.js 和 products-ajax.js 但是,我已經嘗試在 index.js 和 index.php 中包含 Ajax 代碼行,但我無法讓它從products-ajax.php 任何幫助表示贊賞。

這是我的測試代碼的樣子:

 /* THIS IS THE products-ajax.js */ $(document).ready(function(){ $('.products-list li').click(function(){ $.post("products-ajax.php", {p: "Product name"}, success: function(data){alert(data)} ); }); });
 <?php /* THIS IS THE products-ajax.php */ $p = $_POST['p']; echo $p; ?>

我意識到我的瀏覽器的調試器說缺少括號:

$('.products-list li').click(function(){
 //The debugger says HERE v should go a parentheses
$.post("products-ajax.php", {p: "Product name"}, success: function(data{alert(data)});

});

使用$.ajax()而不是$.post() ,您可以添加一個錯誤處理程序,它會給您提供寶貴的信息(也許您可以使用$.post() ,但我不熟悉這個函數,afaik 是只是$.ajax()的快捷方式)。 它可能是這樣的:

var request = $.ajax({
    url: "products-ajax.php",
    method: "POST",
    data: { p: "Product name" }
});
request.done(function( data ) {
    alert( data );
});
request.fail(function( jqXHR, textStatus ) {
    alert( "Request failed: " + textStatus );
});

編輯:並且更喜歡console.log()而不是alert()進行調試。 特別是對於異步交互, alert()有時會導致意外......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM