Eric Meerq: + JavaScript // Fehler bei Übergabe von JS-Variable an PHP

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

  1. 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

    --
    X-Will-Answer-Email: No
    1. 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

      1. Hi,

        @cheateah: ausnahmslos gar nicht oder hab ich was falsch gesehen...?

        exakt. Du übergibst Parameter, aber nicht mal im Ansatz Variablen. Siehe Archiv.

        Cheatah

        --
        X-Will-Answer-Email: No
  2. 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

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
  3. Hallo Eric,

    probier's mal so:

    location.reload('select.php4?PHP_update='+update+'&PHP_id='+id+'&PHP_hits='+hits+');

    Gruß Gunther