4

Based the ID of div clicked I want to be able to change an embed link.

This code previously worked when I set up the page with a form.

<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
     }
?>">

However my client disliked the page refreshing. Building on that, I discard the forms for this 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');
        }
      });
    }); 
});

in place of the .ajax function I also tried

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

The idea was that in place of the whole page refreshing, it would reload the contents of the "PlayListHolder" div. I'm not getting any syntax errors, but my variable won't carry across. In my PHP I tried $_GET and $_REQUEST as well. Any ideas?

Normally I fix my code on my own, but given the nature of debugging I think I'm going to throw up if I the default song one more time. Thanks guys

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 に答える