2016-03-23 15 views
0
echo '<script> 
    function ' . $row['idname'] . 'Click(){ 
     $("#flip-' . $row['idname'] . '").flipswitch("disable"); 
     var isOff = document.getElementById("flip-' . $row['idname'] . '").value; 
     if(isOff == "off"){ 
      console.log("action.php?do=turn-off-' . $row["id"] . '"); 
      jQuery.ajax({ 
       url: "action.php?do=turn-off-' . $row["id"] . '", 
       type: "GET", 
       success:function (data) { 
        $("#flip-' . $row['idname'] . '").flipswitch("enable"); 
        console.log("SUCCESS!!"); 
       } 
      }); 
     }else{ 
      console.log("action.php?do=turn-on-' . $row["id"] . '"); 
      jQuery.ajax({ 
       url: "action.php?do=turn-on-' . $row["id"] . ', 
       type: "GET", 
       success : function (data) { 
        $("#flip-' . $row['idname'] . '").flipswitch("enable"); 
        console.log("SUCCESS!!"); 
       } 
      }); 
     } 
    } 
    </script><br>'; 

Also mein Problem ist, dass Ajax nicht einmal die Seite lädt, die angefordert wird.jQuery Mobile AJAX lädt nicht Seite

Es erstellt diesen Code aus dem Ergebnis einer MySQL-Abfrage, also ist es im Grunde eine JavaScript-Datei in einer PHP-Datei. Das Ziel ist eine leere Seite, die nur einige Funktionen hat.

Die Funktion wird onChange von diesen <select> aufgerufen:

echo '<div class="ui-field-contain" style="width: 100%;"> 
    <label for="flip-' . $row['idname'] . '">' . $row['name'] . '</label> 
    <select onchange="' . $row['idname'] . 'Click()" name="flip-' . $row['idname'] . '" id="flip-' . $row['idname'] . '" data-role="flipswitch"> 
     <option value="off" selected="">Aus</option> <option value="on">An</option> 
    </select> 
</div>'; 
+0

dumme Frage: die Funktion irgendwo genannt wird, nicht wahr? (Ich frage, da es ein * dynamische * Name via * php generieren hat * .. (Warum Sie nicht über eine Funktion erstellen, die Ihre '$ row akzeptiert [ 'idname'' als Argument? – FredMaggiowski

+1

natürlich ist es aufgerufen wird - und ich wollte nicht nur diese Funktion aufrufen, da action.php wie ein api später funktionieren sollte, hat diese Seite aufrufen, wird Aktion x ausgeführt werden –

+0

ok, danke (ich habe den Code auf die Frage hinzugefügt, da aus. die Kommentare seiner ziemlich unleserlich) – FredMaggiowski

Antwort

0

Dies das Problem lösen kann, weil es nicht eine schöne Art und Weise ist es mit immer einfach zu ersetzen. Sie könnten eine Fehlerbehandlung hinzufügen, bei der keine falschen Elemente getestet werden, die mit der Fehlermeldung als Teil der ID ausgewählt werden.

Veraltet jqXHR.success()

Das Problem kann auftreten, da diese Methode, da jQuery 1.8 ist veraltet. Es wurde durch jqXHR.done() ersetzt.

jQuery.ajax({ 
    url: "action.php?do=turn-on-' . $row["id"] . '", 
    type: "GET", 
    done: function (data) { 
     $("#flip-' . $row['idname'] . '").flipswitch("enable"); 
     console.log("SUCCESS!!"); 
    } 
}); 

Vorschlagen eine andere Art und Weise

$.get("api.php", { 
    do: "turn-on-' . $row["id"] . '" 
}, function (data) { 
    console.log(data);} 
}); 
Verwandte Themen