location.href funktioniert nur ausserhalb Funktion
chromebuster
- javascript
0 Cheatah0 chromebuster0 Cheatah0 chromebuster0 Cheatah
Hallo erstmal!
Ich habe ein Formular das ich mittels Javascript auswerte, nach Ablauf der Funktion soll ein PHP-Script die Variable erhalten.
Mein Problem ist folgender Code-Schnipsel:
newUrl="rte_insert.php" + "?inserttext=" + inserttext;
window.location.href=newUrl;
Wenn ich die Variable "inserttext" von Hand definiere und "...location.href..." nicht innerhalb einer Funktion aufrufe, klappt alles. Sobald ich das ganze jedoch in eine Funktion schreibe, geht nichts mehr...
Habe zu Testzwecken auch folgendes in der Funktion probiert:
alert(inserttext); <---- funktioniert
window.open(newUrl, '', 'HEIGHT=800,resizable=yes,WIDTH=600');
<---- funktioniert
Vielleicht hat ja einer eine Idee... Danke schon mal!
Hi,
Sobald ich das ganze jedoch in eine Funktion schreibe, geht nichts mehr...
das ist keine Fehlerbeschreibung.
Cheatah
Hi,
Sobald ich das ganze jedoch in eine Funktion schreibe, geht nichts mehr...
das ist keine Fehlerbeschreibung.
Cheatah
Also, hier die ganze Funktion:
function genHTML()
{
if(ie_ok==1) var HTMLCode = edit.document.body.innerHTML;
if(gecko_ok==1) var HTMLCode = document.getElementById('edit').contentWindow.document.body.innerHTML;
document.htmlformular.htmlvar.value = HTMLCode;
var inserttext=(document.htmlformular.htmlvar.value);
newUrl = "rte_insert.php" + "?inserttext=" + inserttext + "&katid=<? echo $katid;?>";
window.location.href=newUrl;
alert(newUrl);
return false;
}
Die Variable newUrl wird im alert Dialog korrekt gezeigt, aber der Redirect funktioniert nicht, sobald er innerhalb der Funktion steht. Folgender Code (keine Funktion) klappt:
var inserttext="Irgendwas";
newUrl = "rte_insert.php" + "?inserttext=" + inserttext + "&katid=<? echo $katid;?>";
window.location.href=newUrl;
Hoffe, jetzt ist mein Problem besser zu verstehen! ;)
Hi,
var inserttext=(document.htmlformular.htmlvar.value);
wozu dienen die Klammern?
newUrl = "rte_insert.php" + "?inserttext=" + inserttext + "&katid=<? echo $katid;?>";
"<", "?" und Leerzeichen sind innerhalb des Querystrings von URLs nicht erlaubt. Dies *kann* zu keinen sinnvollen Ergebnissen führen.
Cheatah
var inserttext=(document.htmlformular.htmlvar.value);
wozu dienen die Klammern?
Waren nur versehentlich (beim Probieren) übriggeblieben.. sind wieder raus, hat aber keine Änderung gebracht
newUrl = "rte_insert.php" + "?inserttext=" + inserttext + "&katid=<? echo $katid;?>";
"<", "?" und Leerzeichen sind innerhalb des Querystrings von URLs nicht erlaubt. Dies *kann* zu keinen sinnvollen Ergebnissen führen.
"<?" leitet PHP ein und "?>" beendet PHP, damit wird beim ersten Aufruf dynamisch die Kategorie ID festgelegt, im geparsten Quelltext steht dann z. B.
window.location.href="rte_insert.php?inserttext=irgendwas&katid=8";
Hi,
"<", "?" und Leerzeichen sind innerhalb des Querystrings von URLs nicht erlaubt. Dies *kann* zu keinen sinnvollen Ergebnissen führen.
"<?" leitet PHP ein und "?>" beendet PHP,
*ich* weiß das. Ein Client nicht. Wenn obiges bei einem Client angekommen ist, wird er nichts damit anfangen können; wenn es _nicht_ beim Client ankommt, existiert auch kein Grund, sowas hier zu posten.
Recherchiere bitte auch im Archiv, warum serverseitiger Code bei clientseitigen Problemen kontraproduktiv ist und eliminiert werden muss.
Cheatah