PHP Funktionen und HTML

  • PHP

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von LaMiy.

    PHP Funktionen und HTML

    Hi,

    ich habe mal eine Frage bezüglich PHP und HTML, einfach weil es mich interessiert ob es bessere Lösungen gibt als die, die ich kenne.
    Man sieht ja immer öfter WebApplications, man nehme beispielsweise puu.sh (falls das jemand kennt), Dropbox, oder meinetwegen auch das Forum hier. GitHub
    könnte man auch heranziehen.

    Diese WebApps bieten dynamische Möglichkeiten, einzeln selektierte Datensätze zu bearbeiten. Das Backend dafür ist ja aber meist in PHP oder co. geschrieben.
    Meinetwegen auch in ASP.Net, ich verwende aber PHP. Nehmen wir als einfaches Beispiel einen ToDo-Plan. Ich habe jetzt 3 Einträge in meiner Datenbank. Ich rufe die
    Site auf, und möchte die Daten anzeigen. Grundsätzlich nehme ich dafür einfach einen PHP-Tag mittenrein und gebe die Daten aus.
    Jetzt möchte der User einen dieser Einträge löschen. Er klickt also diesen Eintrag an. JavaScript / HTML reagieren entsprechend, markieren ihn und bieten Optionen
    an, so beispielsweise löschen. Nun klickt der User auf löschen. Was dann passiert ist mein Problem:

    Der User klickt auf löschen. Wie bringe ich jetzt vom FrontEnd diesen Command ins PHP-Backend? Eine Option wäre eine Form, dafür würde die Seite aber neu laden und ich
    hätte bei den Optionen am Beginn der Datei erstmal 300 Zeilen mit switch(), um die Aktionen abzufangen. Zweite Option wäre Ajax - aber das wäre wieder sehr umständlich. Ich müsste
    mit JavaScript für jeden dieser Buttons einen Handler bereitstellen, der den Request sendet.

    Nächste Frage wäre, die PHP ordentlich an die Daten rankommt, beispielsweise an die ID des ToDo-Eintrags. Müsste man ja eigentlich parsen, wenn man JS verwendet, und bei einer <form>
    bräuchte man hidden Inputs, die die ID enthalten oder sowas.

    Ich habe noch nie große WebApps gebaut, bin aber gerade genau daran, das zu ändern.

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Ich würde so etwas immer versuchen zu trennen, in Back- und Frontend, so kannst du das Frontend beliebig auswechseln oder weitere anbieten.

    Zu dem Beispiel mit dem entfernen eines Eintrags:
    Das mit AJAX empfinde ich pers. nicht als sehr umständlich, den Handler pro Aktion (löschen/editieren/foobar) schreibst du einmal und übergibst dem je nach gewählter Schaltfläche die Id, die besagt mit welchem Datensatz gearbeitet werden soll und fertig.

    PS: Wobei ich bisher auch keine große Web Anwendung erstellt habe, ich arbeite in der Firma primär mit Schnittstellen (Services usw.), also kaum Zeug mit dem Endanwender in kontakt kommen.
    Klingt für mcih, als wären die gesuchten Zauberworte MVC und intelligentes Routing. Guck dir mal die gängigen PHP-MVC-Frameworks (CakePHP, Symfony, CodeIgniter) und deren Implementationen an.

    slice schrieb:

    den Handler pro Aktion (löschen/editieren/foobar) schreibst du einmal und übergibst dem je nach gewählter Schaltfläche die Id
    So mache ich es aktuell bei einem größeren Projekt auch.

    JavaScript-Quellcode

    1. $(document).on('click', '#customerDelete', function() {
    2. // Kunden ID holen
    3. var cid = $(this).attr('cid');
    4. alertify.confirm("Der Kunde wird nun gelöscht.", function(result) {
    5. // Wenn "OK gewählt wurde"
    6. if (result)
    7. {
    8. // Post an customer/delete mit der ID des zu löschenden Kunden
    9. $.post(SITEROOT + 'customer/delete', {id: cid}, function(data) {
    10. // Callback holen
    11. var obj = $.parseJSON(data);
    12. // Rückgabe ausgeben
    13. printMessages(obj.messages);
    14. });
    15. }
    16. });
    17. });


    Der Button existiert x-Mal, aber es wird die selbe Funktion, nur mit einer anderen ID aufgerufen.
    DU musst dann halt nur prüfen ob der aktuell Request ein POST ist. (Sollte ja kein GET sein)
    Bilder
    • vb.png

      63,23 kB, 874×434, 137 mal angesehen
    Danke für die Antworten, ich denke damit kann ich was anfangen. Wenn trotzdem noch jemand Tipps hat, immer raus damit.

    @LaMiy Du hast da einen Designfehler, IDs gibts im Dokument nur einmal, du solltest Klassen verwenden.

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!