+ JavaScript // Fehler bei Übergabe von JS-Variable an PHP
Eric Meerq
- php
0 Cheatah0 Eric Meerq0 Cheatah
0 romy0 Gunther
Hallo Forum,
habe ein kleines Problem mit der Variablenübergaben von JavaScript an PHP und mir ausführlich die letzten Threads dazu angesehen. Dennoch funktioniert bei mir die Übergabe nicht, vielleicht ein zeichenfehler? wenn mir jemand helfen möchte, folgendermaßen sieht es aus:
Eine seite mit php/mysql abfrage generiert aus einer datenbank die häufigsten 50 bookmarks. dort gibt es ein feld "hits" das pro klick um eins erhöht werden soll. die anzeige funktioniert tadellos, auch kann ich die variable $id (PKey)und $hits an javascript übergeben:
--> echo ... onMouseup="addhit($id, $hits)" ...
beim click wird dann das folgende script aufgerufen.
function addhit(id, hits) // hat inzw. Originalzahlen aus der DB
{
hits =+ 1;
var update = 1; // damit php-update mit "if" erkennt, ob es arbeiten soll oder nicht
location.reload('select.php4?PHP_update=update&PHP_id=id&PHP_hits=hits');
}
Am Anfang meiner Seite steht dann dies:
if ($_GET['PHP_update'] == 1) /* Nur, wenn "geklickt" wurde */
{
$sql->Update("UPDATE bookmark SET bookmark_hits = '$_GET['PHP_hits']'+1 WHERE bookmark_id = '$_GET['PHP_id']'");
}
das update an sich läuft auch tadellos. nur die übergabe von JS and PHP ist fehlerhaft. sieht jemand den fehler...ich such schon ewig und sehe nix mehr.
besten dank,
euer eric
Hi,
location.reload('select.php4?PHP_update=update&PHP_id=id&PHP_hits=hits');
schau Dir bitte mal a) die Location-Zeile Deines Browsers nach dieser Aktion an, und b) in SelfHTML nach, was diese Methode eigentlich macht. Recherchiere bitte ferner im Archiv, welche Möglichkeiten der Variablenübergabe in HTTP zur Verfügung stehen. Kleiner Tipp: Ich habe sie ausnahmslos zwischen meiner Unterschrift und der Signatur angeführt.
Cheatah
Hallo ihr drei,
besten Dank für die "Erinnerung". hatte gar nicht mehr an die '' + '' Referenzierung gedacht. Dazu das window.location.href und eine kleine substitution in dem php script und nun habe ich meinen eigenen zähler...
window.location.href = 'select.php4?PHP_update='+update+'&PHP_id='+id+'&PHP_hits='+hits+'';
in php:
if ($_GET[PHP_update] == 1)
{
$sql->Update("UPDATE bookmark SET bookmark_hits = '$_GET[PHP_hits]' WHERE bookmark_id = '$_GET[PHP_id]'");
}
@cheateah: ausnahmslos gar nicht oder hab ich was falsch gesehen...?
Also, nochmals danke,
Der Eric
Hi,
@cheateah: ausnahmslos gar nicht oder hab ich was falsch gesehen...?
exakt. Du übergibst Parameter, aber nicht mal im Ansatz Variablen. Siehe Archiv.
Cheatah
Hi,
location.reload('select.php4?PHP_update=update&PHP_id=id&PHP_hits=hits');
was steht denn in der URL-zeile, nachdem Du diesen Link abgeschickt hast???
ich vermute mal, dass er die Variablen nicht einsetzt, da man in Javascript Strings mit dem + Operator zusammensetzt.
var string = 'select.php4?PHP_update=' + update + '&PHP_id=' + id + '&PHP_hits=' + hits;
location.reload(string);
Ob location.reload der richtige Weg ist, weiss ich nicht. Ich kenne da eigentlich was anderes, weiss aber die genaue Syntax nicht, ("window.locaion.href") oder so
ciao
romy
Hallo Eric,
probier's mal so:
location.reload('select.php4?PHP_update='+update+'&PHP_id='+id+'&PHP_hits='+hits+');
Gruß Gunther