• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Problem bei übergabe der Parameter an Javascript

Speedbones

New member
Hallo ich habe folgendes Problem :

Mein Erfahrungslevel steht noch sehr am Anfang von Javascript

ich füge via PHP einen Button in meine Seite ein dieser soll gleichzeiteig mit einer Javascript Funktion belegt werden. Wenn ich dies wie folgt mache :

PHP:
<?php echo isset($_SESSION['MM_LogonGroup'])?sprintf("<button id='edbutton' onclick='editartikel(%s,%s)'><img src='media/page_edit.png'/></button>",$row_Recordset1['ArtikelID'],$row_Recordset1['Name']):"" ?>

bekomme ich natürlich folgendene Ausgabe :

HTML:
<button onclick="editartikel(2,Nr.2 Kokosnuss Suppe)" id="edbutton"><img src="media/page_edit.png"></button>

"Nr.2 Kokosnuss Suppe" Soll er aber als einen String übergeben.

Wenn ich allerdings :

PHP:
<?php echo isset($_SESSION['MM_Username'])?sprintf("<button id='edbutton' onclick='editartikel(%s,'%s')'><img src='media/page_edit.png'/></button>",$row_Recordset1['ArtikelID'],$row_Recordset1['Name']):"" ?>

zerlegt mir den Button was auch klar ist :

HTML:
<button haselnusssuppe')'="" nr.3="" onclick="editartikel(19," id="edbutton"><img src="media/page_edit.png"></button>

Meine Frage ist da ich momentan auf dem Schlauch stehe wie ich es bewerkstelligen kann das der Parameter übergeben wird danke schonmal.

mikdoe: Verschoben, da ein Maskierungsproblem in PHP, hat nichts mit JS zu tun.
 
Zuletzt bearbeitet von einem Moderator:
Ich glaube, du hast dich beim Copy und Paste vertan.
Wenn du onclick=' im PHP schreibst, kommt nie und nimmer im Browser onclick=" an!
Um die ' und " Zeichen an den Browser zu schicken und nicht als Steuerzeichen für PHP zu verwenden maskiert man sie indem man ein Backslash \ davor setzt.
Jetzt kannst du basteln ;)
 
da ich mit echo alles nur einfüge wenn eine LogonGroup gestetzt ist passt das mit dem onclick schon :).
$row_Recordset1['ArtikelID'] usw. sind dynamsiche Daten. Was am Recordset denke ich abzulesen ist.
den Parameter für $row_Recordset1['ArtikelID'] macht er ja und übergibt ihn an die Funktion. Nur den String macht er nicht. Habs jetzt einwenig umständlich gelöst da die dynamsichen Daten auch angezeigt werden belege ich die Felder mit ... <?php echo isset($_SESSION['MM_Username'])? "id='bez".$row_Recordset1['ArtikelID']."'":"" ?> und hole mir den String in der Funktion editartiel(id) mit $('#name').val($('#bez'+id).text()); muss doch aber auch einfacher gehen :)
 
*seufz*
Du hast mich gänzlich missverstanden.
Deine gezeigten Codes können nicht stimmen. Allein von der Darstellung her passen sie nicht zusammen.
Oder macht PHP jetzt aus einem Hochkomma selbständig Anführungszeichen? Wundern würde es mich nicht aber ich glaube es nicht.
Du behauptest, im PHP Code würde onclick=' mit Hochkomma stehen und im Browser würde onclick=" mit Anführungszeichen ankommen.
Außerdem enthält der button im PHP Code noch eine ID die vor dem onclick steht. Im Browsercode steht sie angeblich dahinter.
Das bezweifle ich alles entschieden.
Wie auch immer. Genaues Arbeiten wäre an der Stelle eigentlich extrem wichtig.

Du brauchst die Anführungszeichen zur Parameterabgrenzung in PHP. Gleichzeitig brauchst du sie zur Definition für das JS onclick. Das heißt, die inneren maskierst du einfach mit Backslash.
Wieso bist du auf diesen Hinweis mit keinem Wort eingegangen?
 
Zuletzt bearbeitet:
@Speedbones: schau' dir dein erzeugtes HTML nicht in Firebug sondern direkt im Quelltext, der im Browser ankommt an. Das ist ein Unterschied.
 
@Speedbones

ich habe mir Mal flott erlaubt, dein Skript umzustellen. Ich bin aus deinem erstmal NICHT schlau geworden!

PHP:
<?php
         $_SESSION['MM_LogonGroup'] = 'ich';
         $row_Recordset1['ArtikelID'] = '12';
         $row_Recordset1['Name'] = '123';

         $knopf = "<button id=\"edbutton\" onclick=\"editartikel('".$row_Recordset1['ArtikelID']."','".$row_Recordset1['Name']."')\"><img src=\"media/page_edit.png\"></button>";
         $string = (($_SESSION['MM_LogonGroup'] == '')?'':''.$knopf.'');
         echo $string;
?>

Sag bescheid wenns Funktioniert oder auch nicht
 
Zuletzt bearbeitet:
detyp hab es mal ausprobiert in einer veränderten Form und es funktioniert bei mir. Hatte danach gegoogelt und bin auf das Forum hier fündig geworden.
 
arminstahl, wie kann denn so etwas spezielles zufällig auch noch so zeitnah bei dir passen?
Das wundert mich jetzt schon ein wenig.
 
Zurück
Oben