PHP Funktion wird von Java Script nicht korrekt ausgeführt, aber warum?
Ich sitze seit 3 Stunden an einem und den selben Problem!
Hi Leute, nicht gleich denken das das der falsche Bereich ist...
ich habe eine PHP Funktion die wie folgt aussieht:
Sie funktioniert genau so wie ich will, ABER
sobal dich die Funktion in Java Script aufrufe geht die If-Abfrage nicht mehr:
Bei dem Aufruf aus Java Script geht er nicht einmal in die If-Abfrage, ich habe schon alle Daten mit ausgaben über alert() ausgeben lassen, die Zahlen stimmen, die werte x und y werden korrekt übergeben. Sobald ich die Variablen in der If-Abfrage statisch eingebe funktionier alles. Meine Vermutung ist ein falscher Datentyp wobei das eigentlich nicht das Problem sein dürften. Ich verzweifel einfach. Ich hoffe ihr könnt mir helfen?
Gruß moK
Hi Leute, nicht gleich denken das das der falsche Bereich ist...
ich habe eine PHP Funktion die wie folgt aussieht:
function getStelleId($ClickX, $ClickY) {
$stelle = 0;
$query = 'SELECT stelle.id, stelle.x1, stelle.y1, stelle.x2, stelle.y2 FROM stelle;';
connect();
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
if(($ClickX >= $row['x1'] && $ClickX <= $row['x2']) && ($ClickY >= $row['y1'] && $ClickY <= $row['y2'])) {
$stelle= $row['id'];
}
}
disconnect();
return $stelle;
}
Sie funktioniert genau so wie ich will, ABER
sobal dich die Funktion in Java Script aufrufe geht die If-Abfrage nicht mehr:
var stelleId= "<?php echo getStelleId('"+x+"','"+y+"'); ?>";
Bei dem Aufruf aus Java Script geht er nicht einmal in die If-Abfrage, ich habe schon alle Daten mit ausgaben über alert() ausgeben lassen, die Zahlen stimmen, die werte x und y werden korrekt übergeben. Sobald ich die Variablen in der If-Abfrage statisch eingebe funktionier alles. Meine Vermutung ist ein falscher Datentyp wobei das eigentlich nicht das Problem sein dürften. Ich verzweifel einfach. Ich hoffe ihr könnt mir helfen?
Gruß moK
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139326
Url: https://administrator.de/contentid/139326
Ausgedruckt am: 23.11.2024 um 06:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
deine Quelltextbeispiele sind auf jeden Fall schonmal nicht vollständig. Die Funktion erwartet ein x und ein y, du hast aber nur x definiert. Auf der Basis ist es schwer etwas zu erklären.
Aber vergleiche doch mal den Quelltext auf dem Server, und den Quelltext der an den Client ausgelieferten Seite. Du wirst sehen, dass bei letzterem nichts mehr von dem PHP zu finden ist.
Wenn du auf dem Server etwas wie
Gruß
Filipp
PS: Du fragst in der PHP-Funktion erstmal alle Stellen aus der DB ab und ermittelst dann in PHP über die IF-Anweisung die eigentlich gesuchte. Das ist ziemlicher quatsch, das geht in SQL viel besser. Wenn du an ein SELECT ... FROM ...eine entsprechende WHERE-Klausel anhängst bekommst du gleich nur den passenden Datensatz zurückgeliefert, das ist sehr viel performanter
deine Quelltextbeispiele sind auf jeden Fall schonmal nicht vollständig. Die Funktion erwartet ein x und ein y, du hast aber nur x definiert. Auf der Basis ist es schwer etwas zu erklären.
Aber vergleiche doch mal den Quelltext auf dem Server, und den Quelltext der an den Client ausgelieferten Seite. Du wirst sehen, dass bei letzterem nichts mehr von dem PHP zu finden ist.
Wenn du auf dem Server etwas wie
var stelleId= "<?php echo getStelleId(3, 4'); ?>";
stehen hast, dann wird vom Server das PHP ausgeführt, und der Client empfängtvar stelleId="5"
in sofern hat die Variable stelleId einen Wert, denn du auch mit alert() ausgeben kannst. Aber du kannst nicht über Aufrufen der JavaScript-Funktion auf dem Client einen neuen Wert über die auf dem Server gespeicherte PHP-Funktion ermitteln.Gruß
Filipp
PS: Du fragst in der PHP-Funktion erstmal alle Stellen aus der DB ab und ermittelst dann in PHP über die IF-Anweisung die eigentlich gesuchte. Das ist ziemlicher quatsch, das geht in SQL viel besser. Wenn du an ein SELECT ... FROM ...eine entsprechende WHERE-Klausel anhängst bekommst du gleich nur den passenden Datensatz zurückgeliefert, das ist sehr viel performanter
LOL, auf die Idee muss man erstmal kommen.
Was hier passiert ist relativ einfach:
Soll heißen: Du rufst die PHP-Funktion auf und übergibst ihr zwei Strings.
JS und PHP lassen sich nicht mischen!
PHP wird zuerst ausgeführt, danach kommt JS.
Entweder du strukturierst deinen Code um oder du benutzt AJAX.
Was hier passiert ist relativ einfach:
var stelleId= "<?php echo getStelleId('"+x+"','"+y+"'); ?>";
function getStelleId() {
print_r(func_get_args());
}
Array(
0 => "+x+",
1 => "+y+"
)
Soll heißen: Du rufst die PHP-Funktion auf und übergibst ihr zwei Strings.
JS und PHP lassen sich nicht mischen!
PHP wird zuerst ausgeführt, danach kommt JS.
Entweder du strukturierst deinen Code um oder du benutzt AJAX.