1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Anführungszeichen setzen

Dieses Thema im Forum "PHP" wurde erstellt von Umbriell, 26. Dezember 2016.

  1. Umbriell

    Umbriell Mitglied

    Hallo Zusammen,

    ich wünsche Euch noch Frohe Weihnachten und sitze hier nicht nur vor der Gans, sondern auch vor einem Problem.

    Ich muss dies
    Code (PHP):
    1.  echo "<td><button onclick='document.getElementById(delform).style.display='block'class='delbtn'>Nachricht löschen</button></td>";
    2.  
    so anpassen, dass dann hinterher dies:
    Code (PHP):
    1. <button onclick="document.getElementById('delform').style.display='block'">Nachricht löschen</button>
    2.  
    im Dokument steht. Leider verhau ich mich mit den Anführungszeichen immer komplett. Ich weiß nicht, wie ich das 'delform' in Anführungszeichen setzen kann. Ich gebrauche eine dritte Form der Anführungszeichen.

    Und dann habe ich noch die Frage, warum das Ganze überhaupt funktioniert. Das getElementById ist doch Javascript. Wieso macht das was aus dem normalen HTML heraus??

    Vielen Dank im Voraus!

    VG
    Umbriell
     
  2. sheel

    sheel I love Asm Administrator

    Hi

    da in der Zeile außer dem echo kein PHP ist, könnte man das einfach als HTML lassen:
    PHP:
    1. <?php
    2. code code...
    3. ?>
    4. <button onclick="document.getElementById('delform').style.display='block'">Nachricht löschen</button>
    5. <?php
    6. code code...
    7. ?>
    Oder mit echo mit "
    PHP:
    1. <?php
    2. code code...
    3.  
    4. echo "<button onclick=\"document.getElementById('delform').style.display='block'\">Nachricht löschen</button>";
    5.  
    6. code code...
    7. ?>
    Oder mit echo mit '
    PHP:
    1. <?php
    2. code code...
    3.  
    4. echo '<button onclick="document.getElementById(\'delform\').style.display=\'block\'">Nachricht löschen</button>';
    5.  
    6. code code...
    7. ?>
    Siehe auch http://php.net/manual/de/language.types.string.php

    Zum onclick: Ja, das ist JS drin, aber das ist in Ordnung. Es gibt eine Reihe von "Eventhandlern", die bei verschiedenen HTML-Elementen gesetzt werden können, und bei bestimmten Aktionen dann den JS-Code auslösen. onclick zB. für Draufklicken.
    Hier eine Liste: http://www.w3schools.com/tags/ref_eventattributes.asp
    Solche Events kann man codemäßig auch anders lösen, aber das ist zumindest eine Variante.
     
    Zuletzt bearbeitet: 26. Dezember 2016
  3. Umbriell

    Umbriell Mitglied

    Hi sheel,

    besten Dank für die Antwort. Ich habe die Variante mit den " genommen, damit ich den Code einheitlich habe. Klappt jetzt wie gewollt.
    Vor dem 'block der \ mußte nur noch weg, aber das habe ich nach etwas Grübeln selbst bemerkt.

    Auch vielen Dank für die Erklärungen. Ich bin im Moment froh das es läuft, aber wenn Du sagst, dass man das codemäßig anders lösen kann, meinst Du dann nur anders oder meinst Du man kann es besser lösen?

    VG
    Umbriell
     
  4. sheel

    sheel I love Asm Administrator

    Sorry, stimmt, ein \ war zu viel.

    Zum anders lösen: Aus einem Script-Block mit purem JS-Code den Listener erzeugen geht. Zum "besser"...
    a) Wenn man Scripte macht, die für verschiedene Seiten funktionieren sollen, ist es (natürlich) meistens besser, möglichst wenig Änderungen im HTML-Teil zu verlangen.
    b) Für die Übersichtlichkeit usw. kann es helfen, alle Listener zB. an einer Stelle zu machen.
    c) Manche Sachen sind generell nur mit der Voll-JS-Variante möglich.
     
  5. Umbriell

    Umbriell Mitglied

    Hi,

    nochmals besten Dank für die Antwort. Punkte a und b habe ich verstanden. Punkt c nehme ich mal so hin.

    Ich habe aber bei meinen Konstrukt einen Gedankenfehler gehabt. Ich lese aus einer Datenbank Nachrichten für den eingeloggten User aus und packe die per PHP in einer Schleife in eine Tabelle. Mit dem Befehl von oben wird ein Button ans Ende einer Zeile gepackt. Mein Fehler lag nun darin, dass ich den Button nicht dem Datensatz zuordnen kann. In allen Zeilen wird bei den Buttons das gleiche ausgeführt, was vom Code her ja auch richtig, aber vom Gedanken her natürlich falsch ist.
    Daher die Frage: Wie kann ich den Button der Zeile (und damit dem Datensatz) zuordnen, in der er steht?

    Ist es da besser das ganze über einen Link zu regeln, dem man dann z.B. die ID mit übergeben kann?

    Besten Dank im Voraus!

    VG
    Umbriell
     
  6. Umbriell

    Umbriell Mitglied

    Hi,

    ich rufe jetzt eine Funktion auf, der ich über den Button die ID übergebe. Damit habe ich die ID dann schonmal im Javascript und muss sie jetzt noch irgendwie ins PHP rüberbekommen. Mal sehen wie ich das mache.

    Code (PHP):
    1. echo "<td><button onclick='loeschen(" . $row['id'] . ")'>Nachricht löschen</button></td>";
    2.  
    Besten Dank für die Hilfe!

    VG
    Umbriell
     
Die Seite wird geladen...