2012-05-02 25 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);