2012-05-02 28 views
4

基於點擊的div的ID我希望能夠更改嵌入鏈接。使用Ajax在簡單的Jquery事件上觸發PHP

此代碼以前工作時,我用表單設置頁面。

<embed src= 
    "/<?php 
    if (isset($_POST['playlist'])) { // if ANY of the divs were clicked 
     echo $_POST['playlist']; // echo the choice 
    }else{ 
     echo "5125962"; // As a default playlist 
    } 
?>"> 

但是我的客戶不喜歡頁面刷新。在這基礎上,我放棄表格這段JavaScript

$(document).ready(function() { 
    $(".playlist").click(function(){ 
     var playlist = $(this).attr('id'); 
     $.ajax({ 
     url: '/update/apps/music.php', 
     data : playlist, 
     type : 'POST', 
     success : function(data) { 
      $(".PlaylistHolder").load('/update/apps/music.php'); 
     } 
     }); 
    }); 
}); 

到位阿賈克斯功能我也試過

$(".PlaylistHolder").load('/update/apps/music.php', playlist); 

當時的想法是,在地方整個頁面清爽的,它會重新加載的「PlayListHolder」div的內容。我沒有收到任何語法錯誤,但我的變量不會傳遞。在我的PHP中,我也嘗試了$ _GET和$ _REQUEST。有任何想法嗎?

通常我自己修復我的代碼,但考慮到調試的本質,我認爲如果我再一次默認的歌曲,我會拋出。謝謝你們

+0

關閉標籤用於點擊功能。剛剛複製了錯誤 –

回答

3

發佈數據應被格式化爲JSON object.You需要格式化數據發佈這樣的,

var list = $(this).attr('id'); 
      $.ajax({ 
        url: '/update/apps/music.php', 
        data :{playlist: list}, 
        type : 'POST', 
        success : function(data) { 
          $(".PlaylistHolder").load('/update/apps/music.php'); 
        } 
      }); 

否則您可以發佈像這樣的序列化形式

data :$('#yourFormId').Serialize(), 

參見示例Here

+0

對於格式化爲JSON,你是對的。使用.load函數完美工作。我想用.ajax發送信息,但是當我將它重新加載到頁面時丟失了信息。 –

2

你實際上並沒有傳遞返回的AJAX數據。傳遞給你的函數的參數包含你的ajax調用從文件中獲得的任何內容。更改

$(".PlaylistHolder").load('/update/apps/music.php'); 

$(".PlaylistHolder").load(data);