Ankündigung

Einklappen
Keine Ankündigung bisher.

nach jquery ajax success, wird dynamischer Wert aus php nicht im jquery aktualisiert.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nach jquery ajax success, wird dynamischer Wert aus php nicht im jquery aktualisiert.

    Hallo Zusammen,

    Ich bin mit diesem Thema etwas verwirt und werde trotzdem versuchen mein Problem so verständlich wie möglich zu erklären.

    per $.ajax soll ein button per $_POST an ein php File gesendet werden und nach der Verarbeitung in das ursprüngliche div erneut geladen werden.

    In der Verarbeitung wird ein Wert in die DB geschrieben.

    Der Button ändert nach der Verarbeitung, anhand des Wertes in der DB, seine css Eigenschaften zb. Farbe, oder Text. Je nach Wert in der DB, bekommt der Button mit einer php variable eine neue class für die css Eigenschaften zugeordnet.

    Das problem, ajax erkennt die neue id nach der Verarbeitung nicht. Also funktioniert die Ajax Funktion nur beim ersten Mal, bzw. nur solange die ursprüngliche id definiert ist.

    Der Wert, dass in der DB geschrieben wird, kommt aus einem hidden input. Hier ist die value mit einer php Variable definiert und ändert sich anhand des aktuellen Wert aus der DB.

    Ich habe aus Testzwecken im jquery die Variable vname (das ist eben die value die sich ändert) erstellt und ausgeben lassen. Anfangs ist der Value Wert auf der Seite ersichtlich, sobald ich aber auf dem Button klicke, verschwindet dieser , anstatt das neue Wert einzublenden.

    FRAGE: Wie kann ich das neue Wert aus $('#vstatus".$picnr."').val(); im script nach dem ajax aktualisieren?

    HINWEIS: die $('#vstatus".$picnr."').val(); ändert sich beim hidden input auf der DOM korrekt, auch nach ajax.

    Hier das script:
    PHP-Code:
    $script .= 
    "<script>
        $(document).ready(function() {
            var vname = $('#vstatus"
    .$picnr."').val();
            $('input#voting"
    .$picnr."').on('click', function() {
                $.ajax({
                    type:'post',
                    url:'index.php?go=images&user="
    .$kdnr."',
                    data:'&vstatus=' + (vname) + 
                         '&picnr="
    .$picnr."' + 
                         '&voting"
    .$picnr."=' + $('#voting".$picnr."').val(),
                    success: function(data) {
                        var data = $('#form"
    .$picnr."', data);
                        $('#imgc"
    .$picnr."').html(data);
                    }
                });
                return false;
            });
            $('#imgc"
    .$picnr."').append(vname);
        });
    </script>"

    Danke für eure Hilfe.

    Gruss


  • #2
    Ich habe nun etwas versucht und es scheint zu funktionieren. Kann jemand sagen ob das korrekt ist?

    Und zwar habe ich das jquery script anstatt wie immer ganz unten im body, in das div verschoben, welches nach dem ajax success erneut geschrieben wird. So wird das script auch in das div aktualiesiert..

    Kommentar


    • #3
      Kann jemand sagen ob das korrekt ist?
      Nicht wirklich.
      Das problem, ajax erkennt die neue id nach der Verarbeitung nicht. Also funktioniert die Ajax Funktion nur beim ersten Mal, bzw. nur solange die ursprüngliche id definiert ist.
      Nein, das ist Unsinn. Das Problem ist, dass Du das Event nur einmal zuweist. Schau Dir Live-Events als Alternative an. event delegation
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar

      Lädt...
      X