2016-04-03 47 views
0
<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".Categories").click(function() { 
      var catId = $(this).attr('id'); 
      catId = String(catId); 

      jQuery.ajax({ 
       url: "index.php", 
       data: { catId }, 
       type: "POST", 
       success: function (data) { 
        $("#categoryField").html(data); 
       } 
      }); 
     }); 
    }); 
</script> 

我需要我點擊的按鈕id傳遞到同一頁面index.php,沒有頁面刷新和與id value.My代碼工作是錯誤的,因爲頁面呈現第二次。JS:通過按鈕的ID在同一頁

這裏是我的PHP代碼:

<?php 
$category=$user_home->runQuery("SELECT DISTINCT category FROM products"); 
$category->execute(); 

$categoryArray=$category->fetchAll(PDO::FETCH_ASSOC); 

    foreach($categoryArray as $listID){ 
?> 

<input type="button" id="<?php echo $listID['category']?>" class="Categories" value="<?php echo $listID["category"]?>"/><br> 
<? 

} 
?> 
+1

你能分享可執行的演示/片段或[JSFiddle](https://jsfiddle.net/)嗎? – Rayon

+0

控制檯中的任何錯誤?頁面是否重新加載? – Rayon

回答

0

呼叫按鈕click事件處理程序,以防止默認按鈕行爲裏面preventDefault方法( 「頁面呈現第二次」):

... 
$(".Categories").click(function (e) { 
    e.preventDefault(); 
... 
0

有一個在你的代碼中的語法錯誤

$(document).ready(function() { 
    $(".Categories").click(function() { 
     var catId = $(this).attr('id'); 
     catId = String(catId); 

     jQuery.ajax({ 
      url: "index.php", 
      data: { catId: catId }, 
      type: "POST", 
      success: function (data) { 
       $("#categoryField").html(data); 
      } 
     }); 
    }); 
}); 

您必須以有效的文字對象格式傳遞數據。 {「property_name」:「property_value」}。

變化:數據:{CATID}數據:{ 「CATID」:CATID}

對於服務器端:

<? 

if (isset($_POST['catId'])) { 

    /* YOUR CODE FOR CATEGORY */ 

    $catId = intval($_POST['catId']); 

    echo 'SUCCESS'; 

    exit(0); 
} 

// YOU OTHER PHP CODE 
?> 
+0

但我仍然有我的主要問題,在我發佈該變量後,我在#「#categoryField」id中第二次獲取所有頁面內容。如果可能,我需要傳遞變量而不成功:'如果可能的話,我們需要傳遞變量 – Darius92

+0

我們需要更多的樣本和信息來理解你的問題 –

+1

如果你只想發送數據到同一頁面,你必須對你的PHP文件做一些修改太。首先,你必須捕捉Ajax查詢到你的頁面。例如:if($ _POST ['catId']){/ * YOUR CODE * /;回聲'SUCCESS';退出(0)}。像這樣的東西... –

0

我想我需要我的變量發佈到另一個頁面,然後返回它。我不知道如何與exit(0)做到在同一page.This變化是不好的,因爲exit(0)後內if聲明所有變量都將被刪除。

<? 

if (isset($_POST['catId'])) { 

    /* YOUR CODE FOR CATEGORY */ 

    $catId = intval($_POST['catId']); 

    echo 'SUCCESS'; 

    exit(0); 
} 

// YOU OTHER PHP CODE 
?> 
相關問題