onClick mit 2 Parameter + 1 wert in php-datei schreiben

kraugust

Grünschnabel
hallo,
mein onClick soll zwei befahle ausführen: einmal ein einfaches reload und zugleich einen wert in eine php-datei schreiben.
also

onClick='javascript:location.reload(), parameter();'

function parameter()
{
stepvalue = "15=55,3000=-2";
window.location.href = "varBack.php?stepvalue=stepvalue";
}
es soll letztendlich über parameter() der neue wert("15=55,3000=-2") in die varBack.php-datei geschrieben werden

<?php
if (isset($_GET['stepvalue'])){
$stepvalue=$_GET['stepvalue'];}
else{
$stepvalue = "15=84,3000=-2";}
?>
so dass, wenn ich mit var stepvalue="<?php echo $stepvalue; ?>"; darauf zugreife stepvalue = "15=55,3000=-2" steht. klappt die funktion parameter
(am besten wäre, wenn erst parameter() und 'javascript:location.reload() ausgeführt wird)
besten dank
 
Ehm, was genau willst du überhaupt :confused: Versuche Dich zu verstehen:

kraugust hat gesagt.:
onClick='javascript:location.reload(), parameter();'
Wenn Du location.reload() aufrufst, gibst Du parameter() keine Chance mehr... (reload hat den Effekt wie F5/aktualisieren...)

kraugust hat gesagt.:
function parameter()
{
stepvalue = "15=55,3000=-2";
window.location.href = "varBack.php?stepvalue=stepvalue";
}
Du kannst keiner Konstanten (15) einen Wert zuweisen!?
Vorschlag:
HTML:
function parameter()
{
window.location.href = "varBack.php?wert1=15&wert2=-2";
}

oder gleich:
HTML:
OnClick="window.location.href = 'varBack.php?wert2=15&wert2=-2'; "

und in varback.php wertest Du aus:
PHP:
$wert1 = isset($_GET['wert1']) ? $_GET['wert1'] : 84;
$wert2 = isset($_GET['wert2']) ? $_GET['wert2'] : -2;
 
// brauchst Du Deinen stepvalue noch?
$stepvalue = "15=$wert1,3000=$wert2";


Entweder machst Du einen reload oder du rufst über location.href eine neue URl auf. Wie soll beides funktionieren? Außer, Du öffnest varback.php in einem neuen Fenster!
 
Zuletzt bearbeitet:
es ist glaub nicht so üblich, was ich machen möchte.
ich brauche halt ein reload und -am besten vor dem reload noch- ein möglichkeit, in eine php-datei ein wert zu schreiben, sprich stepvalue neu zu setzen. die variable ist übrigens ein string.
 
Bitte erkläre mir, was Du möchtest:

kraugust hat gesagt.:
in eine php-datei ein wert zu schreiben
Wenn Du in eine Datei schreiben möchtest, musst Du fopen und fwrite benutzen!

Wie Du zwei (oder mehr) Parameter übergibst, habe ich oben gezeigt.
Wenn Du einen reload brauchst, soltest Du in Deiner Funktion erst die varback.php mit Parametern in neuem Fenster ( window.open(...) ) öffnen, danach kannst Du einen reload machen.

Du kannst Das Fenster ja auch am Ende wieder mit self.close schließen.

Alternativ arbeitest Du mit Frames, dann sind beide Scripte halt in einem Fenster.

Übrigens ist onclick schon ein Javascript - da darfst Du kein 'javascript:....' angeben. Guckst Du hier: http://de.selfhtml.org/
 
danke für dein offnes ohr.
also: am anfang wird aus varBack.php die variable stepvalue in eine datei eingelesen-brauch die, sonst läuft die berechnung nicht. das klappt. danach erfolgen mehrere berechnungsdurchläufe. das klappt auch.
am schluss muss stepvalue verändert werden und eine neuberechnung erfolgen. wenn onClick='parameter();location.reload();' so funktionieren sollte, dann muss nur noch
hier in varBack.php
<?php
if (isset($_GET['stepvalue'])){
$stepvalue=$_GET['stepvalue'];}
else{
$stepvalue = "15=84,3000=-2";}
?>
ein wert für stepvalue geschrieben werden, damit ich-wie am anfabg- die variable stepvalue wieder in meine datei einlesen kann.
und das wollte ich mit
function parameter()
{
stepvalue = "15=55,3000=-2";
window.location.href = "varBack.php?stepvalue=stepvalue";
}
oder so änlich tun. ich weis, klingt verknotet
 
Hm - irgendwie habe ich Probleme, Dich zu verstehen.

Also:
Du hast eine varback.php!
In welchem Skript befindest Du Dich, wenn Du Dein o.g. Problem hast?
In welche Datei willst Du stepvalue "schreiben"?
WAS verstehst Du unter "schreiben"? Normalerweise bezeichnet man so das Öffnen einer Textdatei, hinein-Schreiben der gewünschten Daten, und am Besten schließt man die hinterher wieder.

Also, wie willst Du
einen wert in eine php-datei schreiben
realisieren? Abgesehen von einem unschönen Programmierstil gibt es wohl auch effizientere Lösungen....


Du hast (mindestens) zwei Probleme, die Du eins nach dem anderen angehen solltest:

- Du kannst nicht gleichzeitig eine Datei reloaden und eine andere laden. Wie soll das funktionieren? Hast Du schon mal 15 Beifahrer in einen Smart gestopft? Mal abgesehen von der Verwirrung Deiner Besucher....

Theorie (siehe SELFHTML)
HTML:
... ONCLICK="erstefunktion(); zweitefunktion(); drittefunktion(); " ....

Alternativ könntest Du in Deiner erstefunktion(); auch als letztes zweitefunktion(); aufrufen.
Oder umgekehrt.

- Du möchtest offensichtlich einen Wert an ein PHP-Script übergeben. Da dieser Wert selber das = Zeichen beinhaltet, musst Du diesen Wert erst mal URL-encoden und zur Auswertung wieder decoden.
Dafür gibt's sowohl in Javascript als auch in PHP die entsprechenden Funktionen.
 
Also wenn ich die Codefragmente richtig interpretier will er nur ne Variable zuweisen.. also.. variable zuweisen und dann reload.. und das ganze dann onclick ..

@kraugust: kleiner Tipp.. erst Variable dann reload.. anders glaub ich nicht das du das auf die Reihe bekommst ;)
 
:eek: Oder meinst Du etwa das:

Bei ONCLICK soll ein Skript aufgerufen werden, das einen übergebenen Wert in eine Textdatei schreibt. Anschließend muß die Seite selber neu geladen werden?
 
Zuletzt bearbeitet:
Ohoh, schwierige Sache.
1. es gibt eine index.php (vorher hies sie index.html, da ich aber jetzt php-code benutze, muss sie doch nun index.php heissen,oder?) in der ich meine variable(typ:string) stepvalue initialisiere und auf die ich immer drauf zugreife.
2. gibt es die index.php, die externe javascrit-Dateien benutzt.
3. am ende sollen noch die versandkosten reingerechnet werden. Darum dachte ich mir, einfach ein reload und vorher noch die Variable neu zuweisen. Aber index.php nimmt stets die alte?
Man kann sich dies auch, zum besseren Verständnis, schonmal testweise unter:
http://www.asphalt-tango.de/shop_test/index.html anschauen. Am Ende auf "welt" klicken. Lasst euch nicht durch die alerts und echos stören.
g. august
 
Zuletzt bearbeitet:
AHA!
Jetzt wird schon mal einiges klarer...
Also: Ich klicke auf der Hauptseite auf "Kaufen" (OOPS! :eek: Wieso übergibst Du Parameter mit index.php?c~1 ).

Wo ist Dein "welt" zu finden?
Dann probiere ich "In den Warenkorb" und es passiert rechts was. Dann gehe ich "zur Kasse". Wann benötigst Du Dein ONCLICK?

Aber index.php nimmt stets die alte?
Wieso übergibst Du index.php nicht die Werte einfach? Dafür ist PHP doch da!
HTML:
location.href='index.php?stepval=' + encodeURI(stepval);
OT: Realisierst Du den ganzen Shop über Javascript? Meinst Du nicht, dass es vielleicht elegantere Möglichkeiten gibt, einen Warenkorb zu verwalten? Immerhin nutzt Du ein (bei 1&1 nicht gerade billiges) Paket mit PHP. Hast Du etwa auch noch eine Datenbank?
Speichere doch den Warenkorb in Deiner Session, und wenn der User auf "zur Kasse" klickst, rechnest Du einfach die Versandkosten anhand der aufgelisteten Artikel.

Ich weis - jetzt sind wir weit vom ursprünglichen Problem weg. Aber ich habe das Gefühl, Du versuchst mit wenig Kenntnissen eine anspruchsvolle Lösung zu realisieren, und wenn ein Problem gelöst ist (und sei es auch nur durch unsauberes "Tricksen"), hast Du anschließend zehn neue... Denk doch erst mal über einen sauberen Lösungsansatz nach, anstatt mit Try & Error rumzuprobieren.

Zurück zu Deinem Problem:
- Zwei Funktionen im ONCLICK aufrufen: siehe mein obiger Beitrag.
- Zwei Seiten gleichzeitig aufrufen: noch weiter oben.
- Parameter sauber übergeben: weiter unten.

Damit kannst Du versuchen, Deine Versandkosten "dazu zu tricksen". Aber, wie gesagt, das ist, wenns funktioniert, nicht die vernünftigste Lösung.

Viel Erfolg!
Micha

PS: Die SHIFT Taste befindet sich links auf der Tastatur zwischen STRG und CAPSLOCK. Sie gelegentlich zu benutzen macht den Text deutlich deutlicher....
 
Zuletzt bearbeitet:
Zurück