4

根据单击的 div 的 ID,我希望能够更改嵌入链接。

此代码以前在我使用表单设置页面时有效。

<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');
        }
      });
    }); 
});

代替 .ajax 函数,我也尝试过

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

这个想法是代替整个页面刷新,它会重新加载“PlayListHolder”div的内容。我没有收到任何语法错误,但我的变量不会继续存在。在我的 PHP 中,我也尝试了 $_GET 和 $_REQUEST。有任何想法吗?

通常我自己修复我的代码,但考虑到调试的性质,我想如果我再用一次默认歌曲,我会扔掉的。多谢你们

4

2 回答 2

3

发布数据应格式化为 JSON 对象。您需要格式化数据才能像这样发布,

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(),

请参阅此处的示例

于 2012-05-02T03:24:53.407 回答
2

您实际上并没有传递返回的 AJAX 数据。传递给您的函数的参数包含您从文件中获取的任何 ajax 调用。改变

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

$(".PlaylistHolder").load(data);
于 2012-05-02T03:18:47.780 回答