metzger-mcp
Goto Top

Link-Variablen-Parameterübergabe mit Button per Javascripte

Hallo Leute ...
ich habe keine Ahnung von Javascripte und scheitere wohl schon an den Basics...
Ich möchte aus einem Formular mit mehreren Inputfeldern mit unterschiedlichen
Button's unterschiedliche Seiten aufrufen. Dabei soll aber ein Parameter mit
übergeben werden. Leider habe ich durch selfhtml und google nichts gefunden
oder ich habe falsch gesucht face-sad. Ich bekomme einfach nicht den Parameter rüber
immer nur

" http://localhost/uebergabe.php?document.Testform.datei.value "

Mal zum Scripe das eingeschrumpft wurde.

<?php
include 'HEAD.php';  
?>

<div>
	<form enctype = "multipart/form-data" action = "WECH.php" method = "post" name="Testform">  
		<p> 
			FUNKTIONSDATEI &nbsp; : <input type="file" name="datei" />  
			<input type="button" name="EinButton" value="Weiter" onclick="TEST()" />  
		</p>
		<p>	<input type = "submit" value = "Absenden" name="abgeschickt"/></p>  
	</form>
</div>	

<script type="text/javascript">  
function TEST () 
{
	if (document.Testform.datei.value != "")   
	{
		window.location.href = "uebergabe.php?document.Testform.datei.value";  
	}
	else
	{	
		alert('Fehler');  
	}
}
</script>

</body>
</html>

Content-ID: 193507

Url: https://administrator.de/contentid/193507

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

Arano
Arano 30.10.2012 um 17:43:15 Uhr
Goto Top
Hallo Metzger

Dein Problem steckt in folgender Zeile:
window.location.href = "uebergabe.php?document.Testform.datei.value";  
Hier wird das Javascript welches den Wart aus dem Feld lesen sollte als ganz normale Zeichenkette angesehen und auch als URL eingefügt.
window.location.href = "uebergabe.php?" + document.Testform.datei.value;  
Das Plus-Zeichen dient in diesem Fall als Verkettungszeichen.

Und noch etwas:
Du definierst einmal als Ziel des Formulars action="WECH.php" und einmal windows.location.htef="uebergabe.php"
Welches soll es denn nun sein ?
Das ist wie ein Päckchen Nudeln mit zwei Preisschildern oO Welches ist jetzt das richtige !?
Das kannst du hier bestimmen, in dem du der Javascript-Funktion-TEST noch einen Return-Wert gibst: return false; face-wink


~Arano
bytecounter
bytecounter 30.10.2012 um 17:45:32 Uhr
Goto Top
Also unformatierten Quellcode schau ich mir nicht wirklich an; dieses Forumfeature hat nämlich seine gute Daseinsberechtigung.
Auf die Schnelle frag ich mich aber, wo denn da überhaupt ein Wert übergeben wird.
Metzger-MCP
Metzger-MCP 30.10.2012 aktualisiert um 20:00:21 Uhr
Goto Top
Hallo Arno,
als erstes Danke für deine produktive Antwort.
Wie ich oben geschrieben habe, habe ich das Scripte auf das
wesentliche zusammen gekürzt, so das man direkt zum Problem
kommt und nicht das ganze unwichtige mit durcharbeiten muss.

Zitat von @Arano:
Du definierst einmal als Ziel des Formulars action="WECH.php" und einmal
windows.location.htef="uebergabe.php"
Welches soll es denn nun sein ?

Ich habe auf dem Formular 20 Input - Anweisungen, die beim
neuanlegen eines Datensatzes alle Felder des Formular an ein
Datenbankscripte ( WECH.PHP ) übergeben werden sollen.

Da ich über die Buttons eine ( Updatefunktionen ) realisieren
möchte, die nur Teile aktualisiert, habe ich ein eigenens PHP
Scripte geschrieben, welches die Sachen umsetzen. Daher die beiden
Ziele.
MFG Uwe
Metzger-MCP
Metzger-MCP 30.10.2012 um 19:58:45 Uhr
Goto Top
Hallo Bytecounter,

Zitat von @bytecounter:
Also unformatierten Quellcode schau ich mir nicht wirklich an;

brauchst du ja nicht. Ich habe den Text soweit formatiert wie es mir möglich war. Mit den Zeilennummern ist es schöner, ich weis aber nicht wie es geht.

Auf die Schnelle frag ich mich aber, wo denn da überhaupt ein Wert übergeben wird.

1. <p> <input type = "submit" value = "Absenden" name="abgeschickt"/></p>

2. <input type="button" name="EinButton" value="Weiter" onclick="TEST()" />

über denn Button die Javascrpitefunktion TEST() aufruf in dem

3. window.location.href = "uebergabe.php?document.Testform.datei.value";

MFG Uwe
bytecounter
bytecounter 31.10.2012 aktualisiert um 09:26:10 Uhr
Goto Top
brauchst du ja nicht. Ich habe den Text soweit formatiert wie es mir möglich war. Mit den Zeilennummern ist es schöner,
ich weis aber nicht wie es geht.
Dazu haben die Entwickler von administrator.de extra eine FAQ integriert:
Formatierungen in den Beiträgen
Der Vorteil mit der Formatierung liegt übrigens nicht nur an den Zeilennummern sondern eben auch durch Verwendung einer dicktengleichen Schriftart lässt sich der Code einfacher lesen.

Nun aber Thema durch, wir sind nicht nachtragend ;)
Also, wie arano schon schrieb, ist die Parameterübergabe falsch, die müsste wie folgt lauten:
window.location.href = "uebergabe.php?" + document.Testform.datei.value;   

Wenn Du mit Firefox arbeitest, solltest Du Dir unbedingt firebug installieren - unter IE (ab 8) die Konsole einschalten.
Dann kannst Du mit
var uri = "uebergabe.php?" + document.Testform.datei.value;   
console.log(uri);
schauen, was wo steht.

Du solltest allerdings auch mit encodeURI() arbeiten, damit Sonderzeichen (z. B. auch Leerzeichen) in der URI korrekt kodiert werden:
var uri = "uebergabe.php?" + document.Testform.datei.value;   
uri = encodeURI(uri);
window.location.href = uri;

vg
Metzger-MCP
Metzger-MCP 31.10.2012 um 09:34:52 Uhr
Goto Top
THX auch dir bytecounter
LG Uwe