2016-04-21 12 views
0

Momentan versuche ich eine Zeit und ein Datum von php an meinen eckigen Controller zu senden, indem ich einen ng-klick benutze.So senden Sie PHP-Variablen korrekt über ng-click-Parameter

$time is a date 
$today is a datetime 

Kann mir jemand erklären, warum diese

<button ng-click="getClickInfo('<?php echo $time; ?>', '<?php echo $today; ?>')";</button> 

funktioniert aber wenn ich versuche, wie dies das gleiche Ergebnis innerhalb eines Echos zu erreichen, gibt es mir anders und falsche Ausgabe

<?php echo '<button ng-click="getClickInfo(' . $time . ', ' . $today . ')";></button>'; ?> 

Ich habe versucht, im Internet nach einer Lösung zu suchen, aber ich konnte nicht wirklich ein Thema finden. Hoffe jemand kann mir erklären, was in diesem Szenario passiert. Eine Umleitung auf Artikel zu diesem Thema wäre sehr hilfreich für mich.

Ausgang:

01:00 // incorrect output 
01/01/1970 // incorrect output 

20.30 // desired output 
22-04-2016 // desired output 
+0

Ihre HTML-String nicht richtig. Es sollte sein: '' Ich kann nicht sicher sagen, dass das Ihr genaues Problem ist, aber für korrekte HTML, das muss behoben werden – mhodges

+0

Die HTML-Zeichenfolge behoben, aber immer noch gibt mir das gleiche falsche Ergebnis –

+0

Ich sehe, dass die Zitate fehlen, wenn ich meinen Code inspizieren, aber ich habe immer noch keine Ahnung, ob es eine Lösung dafür gibt. Beispiel 1 (korrektes Beispiel) ist wie ('20 .30 ', '22 -04-2016'), Beispiel zwei ist wie (20.30, 22-04-2016). Dies verursacht wahrscheinlich das Problem. –

Antwort

1

Sie haben die Javascript-Funktion Argumente zitieren, sonst erhalten Sie unvorhersehbare Ergebnisse Die ctach hier ist, dass das HTML ng-click Attribut muss in doppelten Anführungszeichen und dem Attributwert (Ihre Funktion eingeschlossen werden) dürfen nicht doppelte Anführungszeichen enthalten, weil es die HTML

Außerdem brechen würde, wird die ; nicht benötigt wird, sind Sie es außerhalb des ng-click HTML-Attributwert setzen, dass nicht gültige HTML ist

Hier ist eine Lösung, beachten Sie, dass Anführungszeichen mit umgekehrten Schrägstrich innerhalb von PHP Strings entkommen sind:

<?php echo '<button ng-click="getClickInfo(\'' . $time . '\', \'' . $today . '\')"></button>' ?> 

Hier ist ein lesbarer Weise, es zu tun, ich würde dieses Vorgehen empfehlen:

<?php echo '<button ng-click="getClickInfo(' . "'$time', '$today'" . ')";></button>' ?> 
+0

Vielen Dank, ich war auf der Suche nach so etwas, aber ich wusste einfach nicht, wie es geht. Das hat es ziemlich gelöst. –

+0

Ich bin froh, dass ich helfen kann –

Verwandte Themen