4 Stimmen

PHP auf einfaches Jquery-Ereignis mit Ajax auslösen

Basierend auf der ID des angeklickten Divs möchte ich in der Lage sein, einen eingebetteten Link zu ändern.

Dieser Code funktionierte bereits, als ich die Seite mit einem Formular einrichtete.

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

Meinem Kunden gefiel jedoch die Aktualisierung der Seite nicht. Darauf aufbauend, verwerfe ich die Formulare für dieses 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');
        }
      });
    }); 
});

anstelle der .ajax-Funktion habe ich auch versucht

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

Die Idee war, dass anstelle der gesamten Seite aktualisieren, würde es den Inhalt des "PlayListHolder" div neu laden. Ich erhalte keine Syntaxfehler, aber meine Variable wird nicht übertragen. In meinem PHP habe ich auch $_GET und $_REQUEST ausprobiert. Hat jemand eine Idee?

Normalerweise korrigiere ich meinen Code selbst, aber angesichts der Art der Fehlersuche werde ich wohl kotzen, wenn ich den Standardsong noch einmal höre. Danke Jungs

3voto

Jayantha Lal Sirisena Punkte 20916

Die Buchungsdaten sollten als JSON-Objekt formatiert werden, und zwar wie folgt,

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

Sie können aber auch ein serialisiertes Formular wie dieses veröffentlichen

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

Siehe Beispiel ここで

2voto

sgrif Punkte 3562

Sie übergeben die zurückgegebenen AJAX-Daten nicht wirklich. Der Parameter, der an Ihre Funktion übergeben wird, enthält das, was Ihr AJAX-Aufruf aus der Datei erhalten hat. ändern

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

zu

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X