2012-05-02 3 views
4

Basé sur l'ID de div cliqué Je veux être en mesure de modifier un lien embed.Trigger PHP sur simple événement Jquery avec Ajax

Ce code précédemment travaillé lorsque je configure la page avec un formulaire.

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

Cependant, mon client n'aimait pas l'actualisation de la page. Fort de cela, je jette les formes pour cette 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'); 
     } 
     }); 
    }); 
}); 

en place de la fonction .ajax J'ai aussi essayé

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

L'idée était que la place de la page entière rafraîchissante, il reload le contenu de la div "PlayListHolder" Je ne reçois aucune erreur de syntaxe, mais ma variable ne sera pas transposée. Dans mon PHP, j'ai essayé $ _GET et $ _REQUEST aussi. Des idées?

Normalement, je corrige mon code par moi-même, mais étant donné la nature du débogage, je pense que je vais vomir si je chante la chanson par défaut une fois de plus. Merci les gars

+0

Les balises Close sont là pour la fonction de clic. Juste copié faux –

Répondre

3

Les données enregistrées doivent être formatées comme JSON object.You besoin de formater les données pour poster comme celui-ci,

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

Ou bien vous pouvez poster un forme sérialisée comme ceci

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

Voir Exemple Here

+0

Vous aviez raison sur le formatage comme JSON. Travaillé parfaitement avec la fonction .load. Je pense qu'avec le .ajax je transmettais l'information mais la perdais quand je la rechargeais dans la page. –

2

Vous ne transmettez pas réellement les données AJAX renvoyées. Le paramètre transmis à votre fonction contient tout ce que votre appel ajax a obtenu du fichier. Changer

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

à

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