HTML Mit Button direkt auf URL verlinken

rony12

Commodore
Dabei seit
Jan. 2007
Beiträge
4.236
Hallo,

ich habe auf der Arbeit die "pfelge" einer kleinen Inventardatenbank übernommen - weil ich der einzige bin der sich halbwegs mit php und html auseinader gesetzt hat.

Ich konnte schon viele funktionen um- und einbauen.

Jetzt wollte ich aber das direkte suche einer ID in der datenbank erlauben.
Der Programmierer der Datenbank (nicht mehr bei uns), hatte da eine info.php geschrieben, bei der infos zu einem Computer angezeigt werden.
Und genau diese wollte ich aufrufen.

info.php?id=761

ruft dann die infos zu dieser id auf.

Nun habe ich ein Formular gebaut, bei der man die ID eintippt, und nach dem drücken eines Buttons soll die seite aufgerufen werden.

nun dachte ich einfach daran, dass ich dem button sage, wenn er nach einen onclick einen link bekommt, das gehen würde.

onclick="info.php?id="id()""

das funktioniert aber leider nicht.

Hätte jemand eine Idee, wie ich nun direkt auf die ID-infoseite verlinken kann?

HTML:
<form name="id_suche" method="post">
                    <fieldset>
                    <label class="first">ID: <input type="name" name="id" /></label>
                    <input type="submit" name="suche" value="Suche" onclick="info.php?id="id()"">
                    </fieldset>
                </form>
 

Lawnmower

Fleet Admiral
Dabei seit
Mai 2011
Beiträge
11.799
irgendwie so:

HTML:
<input type="text" name="id" id="id" value="" />
<input type="button" onclick="window.location.href='info.php?id=' + document.getElementById('id').value" />
beachten dass beim Eingabefeld neu noch id="id" dazugekommen ist und der Button neu vom Typ "button" und nicht mehr "submit" ist.
 
Zuletzt bearbeitet:

Spike S.

Lieutenant
Dabei seit
Feb. 2012
Beiträge
539
HTML:
                <form name="id_suche" action="info.php" method="post">
                    <fieldset>
                    <label class="first" for="id">ID: </label><input type="text" id="id" name="id" />
                    <input type="submit" name="suche" value="Suche">
                    </fieldset>
                </form>
Attribut "method" gegebenenfalls umstellen. Fängt die info.php Fehler (ID nicht vorhanden, falsche Eingabe, ...) ab?

Gruß
Spike S.
 
Zuletzt bearbeitet:

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
24.979
Hi,

und beachte vor allem, wie in der "info.php" die Daten weiter behandelt werden und überprüfe das! Die Lösung jetzt nimmt ja einfach, was in dem Feld steht und überträgt das ohne weitere Prüfungen. Diese müssen also in der "info.php" erfolgen! Stichwort: Datenbanksicherheit / SQL-Injection!

VG,
Mad
 

rony12

Commodore
Ersteller dieses Themas
Dabei seit
Jan. 2007
Beiträge
4.236
@Lawnmower

tut mir leid, aber deine lösung funktioniert bei mir nicht.

ich habe aber auch versucht eine id direkt zu verlinken:
onclick="window.location.href='info.php?id=761'

aber auch das geht nicht.

also bis jetzt wird einfach die zahl die übergeben wird als id in der info.php gesetzt, und dann weitergearbeitet.
Es wird geprüft od es sich dabei um eine zahl handelt.
 

Lawnmower

Fleet Admiral
Dabei seit
Mai 2011
Beiträge
11.799
Hier das komplette Beispiel - habs getestet - funktioniert bei mir einwandfrei.

HTML:
<form>
    <fieldset>
    <label class="first">ID: <input type="text" id="id" /></label>
    <input type="button" value="Suche" onclick="window.location.href='info.php?id=' + document.getElementById('id').value" />
    </fieldset>
</form>
Das Problem ist möglicherweise dass die info.php Seite nach POST und nicht nach GET Werten sucht - dann wirds das nicht klappen ausser Du passt die info.php Seite an.
 
Zuletzt bearbeitet:

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
24.979
Hi,

trotzdem wäre da "MySQL Escape" das Stichwort, solltest du (wenn es sich um eine MySQL-DB handelt) auf alle Fälle ins Auge fassen.

Was funktioniert an der Lösung nicht? Was passiert denn beim Click auf den Button? Für mich sieht der Code an sich korrekt aus.

VG,
Mad
 

rony12

Commodore
Ersteller dieses Themas
Dabei seit
Jan. 2007
Beiträge
4.236
sie sucht nach GET....

es ist nur so, wenn ich den button drücke, dann die seite einfach neuläd....

ich habe jetzt testweise eine zweite info.php gemacht, und lasste POST auslesen, und eben die sachen aus dem Formular übergeben.

Das klappt soweit...
 

Lawnmower

Fleet Admiral
Dabei seit
Mai 2011
Beiträge
11.799
es ist nur so, wenn ich den button drücke, dann die seite einfach neuläd
der Button ist immer noch ein Type Submit möglicherweise? Dann könnte das von Dir beschriebene Verhalten auftreten; er müsste mindestens auf die info.php Seite umleiten. Oder Javascript ist im Browser deaktiviert (wobei dann dürfte gar nix passieren).
 

rony12

Commodore
Ersteller dieses Themas
Dabei seit
Jan. 2007
Beiträge
4.236
*hust*

du hast recht - jetzt geht es :)

das hab ich ganz überlesen ^^

vielen dank :)

das kommt davon wenn man nur halbwissen hat....
 
Top