使用 Ajax 在简单的 Jquery 事件上触发 PHP


Trigger PHP on simple Jquery event with Ajax

基于点击的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美元。有什么想法吗?

通常我会自己修复我的代码,但考虑到调试的性质,我想如果我再一次默认歌曲,我会呕吐。谢谢大家

发布数据的格式应为 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(),

请参阅此处的示例

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

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

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