ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
632
632
EMPFEHLEN
-
02.06.05 05:26 #1
- Registriert seit
- May 2005
- Beiträge
- 16
Hallo liebe Leute,
wie meistens bei mir - ein Prob bei der Übergabe von Variablen von PHP nach JS.
Ich übergebe ein zweidimensionales Array und muss dabei einen JS Zaehler hochzählen und einen PHP Zaehler hochzaehlen.
Wenn ich in meinem JS schreibe:
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
"<?php $ZAEHLER++; ?>";
steht die php Variable $ZAEHLER auf 9, wenn sie mit Null initialisiert war.
wenn ich in meinem JS schreibe:
for(i = 0; i < 10;i++)
{
"<?php $ZAEHLER++; ?>";
}
steht die php Variable $ZAEHLER auf 1, wenn sie mit Null initialisiert war.
Es ist logisch das Gleiche, liefert aber unterschiedliche Ergebnisse, kann mir jemand sagen, warum das so ist bzw. wie ich es bewerkstelligen kann, dass der Zähler in einer Schleife tatsächlich hochgezählt wird? Ich bin mir noch nicht mal im klaren darüber, ob es ein JS oder ein PHP Problem ist. Um bei der Datenübergabe flexibel zu sein, brauche ich eine Lösung mit einer Schleife, da ich nicht weiß, wieviele Daten zu übergeben sind.
Für sachdienliche Hinweise bin ich sehr dankbar.
Schöne Grüße aus HH
Rudolf
-
Nein, es ist nicht das Gleiche. Bei deinem ersten Codeschnipsel inkrementierst du die Variable $ZAEHLER zehnmal, beim zweiten nur einmal. Du kannst nämlich keinen PHP-Code aus JavaScript heraus aufrufen, da PHP auf dem Server, JS hingegen auf dem Client abgearbeitet wird. Dein PHP-Skript wird also erst auf dem Server abgearbeitet und die Ausgabe dann zum Client (Browser des Benutzers) gesendet. Und erst da kann dann ggf. JavaScript-Code ausgeführt werden.
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
02.06.05 09:13 #3
- Registriert seit
- May 2005
- Beiträge
- 16
Vielen Dank für die schnelle Antwort. Ich glaube, dass es mir nun klar ist, warum es nicht wie gewünscht funktioniert - aber das Problem ist damit nicht gelöst.
Dieses ist die entscheidende Stelle in meinem JS
myjs2dimarray= new Array();
myjs2dimarray[0] = new Array("<?php print(implode('","', $myphp2dimarray[0])); ?>");
$myphp2dimarray ist ein zweidimensionales Array, das mir Verzeichnispfade in der ersten Dimension und Dateinamen in der zweiten Dimension zur Weiterverarbeitung in JS liefert.
myjs2dimarray ist das Aufnahmearray in JS..
myjs2dimarray[0] = new Array("<?php print(implode('","', $myphp2dimarray[0])); ?>");
myjs2dimarray[1] = new Array("<?php print(implode('","', $myphp2dimarray[1])); ?>");
myjs2dimarray[2] = new Array("<?php print(implode('","', $myphp2dimarray[2])); ?>");
ist meine derzeitige Notlösung.So kann ich drei Verzeichnispfade und die Verzeichnisinhalte übergeben, immerhin funktioniert das wenigstens (es wäre natürlich noch etwas weiter aufbohrbar, ist aber keine "Programmiererlösung"). Ich beschäftige mich noch nicht lange mit Internetprogrammierung, und bei C/C++ oder ähnlichen Sprachen kommen solche Probleme nicht vor. Das eine kann JS nicht, das andere kann PHP nicht und die Kommunkation zwischen PHP und JS ist ein wenig sperrig.Ich möchte natürlich möglichst unbegrenzt (mal vom Speicher abgesehen) Arrayelemente übergeben können und dazu brauche ich eine Möglichkeit die Indizees von beiden Arrays hochzuzählen. Fällt jemandem dazu was ein? Vielleicht bin ich ja auch auf einem ganz falschen Weg und das gewünschte kann ganz anders gelöst werden.
Mir schwebt so etwas vor
myjs2dimarray[i] = new Array("<?php print(implode('","', $myphp2dimarray[$i])); ?>");
wobei dann i und $i inkrementiert werden sollen. Die Frage ist WIE? Oder ist mein Wunsch gar nicht realisierbar?
Ich danke Euch für Eure Geduld.
Gruß
RudolfGeändert von Riebensiel (02.06.05 um 11:42 Uhr)
-
einen JS-Array erstellt man per new Array()
Zitat von Riebensiel
-
02.06.05 11:51 #5
- Registriert seit
- May 2005
- Beiträge
- 16
Hallo Sven,
ich habe mich nur hier verschrieben, im Code ist es richtig, aber ich habe es nacheditiert, damit niemand mehr über diese Stelle stolpert. Wie Du zwei Zeilen weiter unten siehst, weiß ich wohl, wie man ein JS Array vereinbart, das ist nicht mein Problem. Mein Code läuft ja auch, ich suche nur nach einer Lösung für das Problem sowohl das JS Array als auch das PHP Array im JS zu inkrementieren oder eine andere Möglichkeit für eine unbeschränkte Übergabe zu finden. Wenn Du mir da weiterhelfen könntest, wäre ich DIr sehr verbunden..
Gruß
Rudolf
-
Meinst du so

Code :1 2 3 4 5 6 7 8 9 10 11 12
<script type="text/javascript"> <!-- myjs2dimarray= new Array(); <?php for($i=0;$i<count($myphp2dimarray);++$i) { echo "myjs2dimarray[$i] = new Array('".implode("','", $myphp2dimarray[$i])."');\n"; } ?> //--> </script>
-
03.06.05 07:13 #7
- Registriert seit
- May 2005
- Beiträge
- 16
Yeehoo! Das ist es!
Viele, vielen Dank! Ein PHP Schnipsel in JS der von PHP an JS übergibt. Darauf muss man erst mal kommen. Ein kleines Problemchen gab es noch, wo ich noch ordentlich suchen musste, weil sich PHP anders verhält als JS. In einem String, der übergeben wird, gibt es ein einfaches Hochkomma (jemand heißt O' Neal). PHP interpretiert das anders als JS. Bei meiner ersten Lösung mit JS gab es bei der Übergabe kein Problem, aber für PHP hat dieses Zeichen in einem String eine andere Bedeutung. Vermutlich gibt es eine Möglichkeit PHP dazu zu bewegen, dieses Zeichen nur als Zeichen zu interpretieren, aber erstmal habe ich es einfach duch das Zeichen ` ersetzt und es funktioniert. Suuuper! Sehr schön.....
Schöne Grüsse
Rudolf
Ähnliche Themen
-
[JSP / Hibernate] Gleiche Tabelle in verschiedenen Portlets - mal gehts, mal nicht?!
Von silmepurpurdrache im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 03.12.07, 13:29 -
benutze 2x das gleiche mysql querry - daten sind im 2. nicht vorhanden
Von packman im Forum PHPAntworten: 3Letzter Beitrag: 18.10.06, 17:05 -
Formular: Mehrere gleiche Variablen nicht löschbar
Von lord-ruebe im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 20.06.05, 15:22 -
gleiche Fenster: gleiche Veränderungen
Von zarrandreas im Forum .NET ArchivAntworten: 2Letzter Beitrag: 02.06.05, 18:48 -
Gleiche Grafiken werden nicht angezeigt
Von dadiscobeat im Forum HTML & XHTMLAntworten: 12Letzter Beitrag: 26.03.04, 10:09





Zitieren

Login





