php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.12.2007, 08:45  
Neuer Benutzer
 
Registriert seit: 05.12.2007
Beiträge: 5
Mikhail befindet sich auf einem aufstrebenden Ast
Standard Formular akzeptiert im FF keine false Rückgabe

Habe ein Problem, das ich einfach nicht gelöst bekomme.

Ich habe ein Formular, das wenn man den Submit Button klickt oder Enter nie abgeschickt werden soll, da es lediglich eine JavaScript Funktion auslösen soll.

Hier die JavaScript Funktion:

Code:
function abschicken()
{     
    postSend('target=chateintrag&text=' + document.getElementById('nachricht').value + '&farbe=' + document.forms.onlinestatus.elements.farbe.selectedIndex);
    document.getElementById('nachricht').value = '';
    return false;
}
Im HTML Quellcode sieht das Formular so aus:

Code:
<form action="" method="post" onsubmit="return false; return abschicken();">
    <input id="nachricht" name="nachricht" size="125" />
    <input class="button" onclick="postSend('target=chateintrag&text=' + document.getElementById('nachricht').value + '&farbe=' + document.forms.onlinestatus.elements.farbe.selectedIndex);document.getElementById('nachricht').value = '';" name="nsend" type="submit" value="Senden" />
</form>
So wie es da jetzt steht ist mir klar, das es eigentlich nicht richtig ist, da ja zuerst ein False zurück gegeben wird und der Rest nicht mehr Interressant wäre. Allerdings ist es so die einzige Möglichkeit es im Firefox laufen zu lassen. Nehme ich das erste "return false" raus, schickt der Firefox die ganze Seite ab und lädt diese neu, was ja verhindert werden soll. Allerdings funktioniert es in dieser Variante dann im Internet Explorer. Egal was ich mache es läuft in einem der beiden Browser nicht richtig...
Ich weiß auch einfach nicht was ich da jetzt so absolut falsch mache.

Ich hoffe es kann mir jemand helfen.
Mikhail ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.12.2007, 08:56  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Also ich benutze eigentlich ausschliessich Firefox und schaue immer erst am Schluss, ob und dass alles auch im Internet Explorer läuft und so ein Abbrechen kommt bei mir in jedem Formular vor, das Pflichtfelder hat (also eigentlich in jedem) und es funktioniert immer einwandfrei!
Hast du schonmal versucht dem action-Attribut einen Wert zuzuweisen? Vielleicht tut sich der Firefox damit schwer! Es ist meiner Meinung nach ziemlich ungeschickt dort keinen Wert anzugeben! Du solltest dort zu einer Seite verweisen, die die Daten verarbeitet, falls ein Benutzer JavaScript deaktiviert hat!
Montellese ist offline   Mit Zitat antworten
Alt 05.12.2007, 08:58  
Neuer Benutzer
 
Registriert seit: 05.12.2007
Beiträge: 5
Mikhail befindet sich auf einem aufstrebenden Ast
Standard

Das hatte ich auch schon probiert, hatte da $_SERVER[PHP_SELF]?target=chat angeben, was auf die selbe Seite verweist, aber das hat nichts geändert das Problem blieb das selbe...
Mikhail ist offline   Mit Zitat antworten
Alt 05.12.2007, 10:38  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Mach doch mal probehalber
Code:
onsubmit="alert(abschicken());"
um zu Prüfen, ob überhaupt false zurückgegeben wird oder bau ein paar alerts in die Funktion abschicken() ein. Vielleicht fällt dir ja eine Anomalie auf! Hast du die Ausführung des JS-Teil schonmal mit FireBug oder der WebDeveloper Extension gecheckt, ob da was gemeckert wird?
Montellese ist offline   Mit Zitat antworten
Alt 05.12.2007, 11:48  
Neuer Benutzer
 
Registriert seit: 05.12.2007
Beiträge: 5
Mikhail befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich ein alert, wie in deinem Beispiel, ausgebe, dann wird False beim IE ausgegeben, der FF allerdings lädt einfach nur die Seite neu. Baue ich am Anfang der Funktion "abschicken()" ein alert ein wird dieses auch angezeigt bei beiden Browsern und es wird bei keinem die Seite neu geladen es funktioniert... Baue ich das alert aber nach meinem Ajaxaufruf (die Funktion PostSend) ein wird dieses beim FF nicht mehr angezeigt und die Seite wird neu geladen. Fehler werden mir für das JavaScript nicht angezeigt.

Meine Vermutung ist, dass die Funktion durch das Aufrufen der Ajax Funktion und dem Nachladen der Seite zu lange dauert und der FF die Funktion zwar zu Ende ausgeführt wird, der FF aber vorher schon der Meinung ist das dauert mir zu lange ich Lade jetzt neu sich sagt.

Vielleicht kann mir hier dann jemand sagen wie ich spezifisch den IE oder FF ansprechen kann so das ich für beide das so bastel, dass es in beiden Funktioniert (so dass der FF das False zuerst bekommt und der IE am Ende der Funktion)
Mikhail ist offline   Mit Zitat antworten
Alt 05.12.2007, 13:28  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Also mein FF lädt die Ursprungsseite nicht neu, wenn ich von dort per Ajax ein PHP-Script anspreche, das zu lange braucht um zu antworten! Ich sehe dann einfach die ganze Zeit das "loading" Symbol, das ich beim Absenden der Ajax-Anfrage angezeigt habe.

Das Problem muss also in der Funktion liegen, die die Ajax-Abfrage startet. Kannst du diese vielleicht auch mal posten? Meistens deutet deine Beobachtung, dass es mit einem eingebauten alert() funktioniert, aber auf ein Problem mit dem DOM hin, sprich, dass mein ein Element ansprechen will, dass noch nicht aufgebaut wurde oder so. Durch den alert() entsteht eine kurze Verzögerung, die meistens aber schon ausreicht um den DOM fertig zu definieren! Bei einem Formular, das man aber irrrrgendwann abschicken kann, ist dies irgendwie kaum möglich....

Wäre froh, wenn du mal die Funktion postSend() hier posten könntest!
Montellese ist offline   Mit Zitat antworten
Alt 05.12.2007, 14:25  
Neuer Benutzer
 
Registriert seit: 05.12.2007
Beiträge: 5
Mikhail befindet sich auf einem aufstrebenden Ast
Standard

Also es ist eine ganz einfache Funktion:

Code:
function postSend(wert)
{
    XMLHTTP.open(\"POST\", \"ajaxziele.php5\");
    XMLHTTP.onreadystatechange = DatenAusgeben;
    XMLHTTP.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\");
    XMLHTTP.send(wert);
}
und hier die Funktion die was ausgibt:

Code:
var AObject = \"ajax\";
function DatenAusgeben()
{
    if (XMLHTTP.readyState == 4)
    {
        var d = document.getElementById(AObject);
        d.innerHTML = d.innerHTML + XMLHTTP.responseText;
        AObject = \"ajax\";
    }
}
Allerdings bekommt in diesem Fall gar nichts zurück, da in der PHP Datei die Ausgeführt wird nur einige MySQL Abfragen ausgeführt werden und ich benutze diese Funktion für eine Menge anderer Abfragen und wird im Formular auf Senden geklickt führt er den onclick Befehl erfolgreich durch (wenn das Formular nicht die Seite neu lädt, also in der onsubmit return false steht)
Mikhail ist offline   Mit Zitat antworten
Alt 09.12.2007, 20:56  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Warum benutzt Du überhaupt ein Formular, wenn nichts abgeschickt werden soll?
David ist offline   Mit Zitat antworten
Alt 10.12.2007, 13:35  
Neuer Benutzer
 
Registriert seit: 05.12.2007
Beiträge: 5
Mikhail befindet sich auf einem aufstrebenden Ast
Standard

Es wird ja im übertragenden Sinne etwas abgeschickt. Allerdings geht dies eben an eine JavScript Funktion die über Ajax dieses dann verarbeitet. Stelle ich die Formularfelder nicht in ein Formular dann reagiert es auch nicht so einfach auf ein Enter im Eingabefeld, das dann die JavaScript Funktion ausführen soll. Es funktioniert ja auch eigentlich so, nur eben nicht in dem von mir hier beschriebenen Fällen. Und gerade weil es dabei aber eigentlich keine Probleme geben sollte frage ich das hier ja nach, aber anscheinend weiß man hier auch keine Antwort hier auf dieses Problem...
Mikhail ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP: Formular Generator Zergling-new Tutorials 16 06.07.2010 03:14
[Erledigt] Transparente Runde Ecken bei Thumbnial realisieren tomtaz PHP Tipps 2008 3 08.07.2008 01:20
Problem: [Warning Empty delimiter] Lia PHP Tipps 2008 3 03.01.2008 23:21
Voraussetzungen für dieses Thumbnail Skript Plague PHP Tipps 2008 9 19.09.2007 13:35
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
formular includen samspa5 PHP Tipps 2006 13 18.03.2006 11:37
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
[Erledigt] Formular testen .... HTML, Usability und Barrierefreiheit 7 19.09.2005 14:03
[Erledigt] PHP Formular ~~wichtig~~ PHP Tipps 2005 27 29.05.2005 19:38
Im Formular user abfragen? Datenbanken 3 06.01.2005 10:51
[Erledigt] PHP Formular - Daten an nächsten Schritt weiter geben - Wie? PHP Tipps 2005 14 02.01.2005 20:05
[Erledigt] Daten in einem Formular ausgeben und ändern PHP Tipps 2004-2 7 07.12.2004 17:22
wieso bleibt variable aus dem Formular auf FALSE? nieselfriem PHP Tipps 2004-2 6 03.12.2004 01:06
[Erledigt] Daten in neuem Formular anzeigen PHP Tipps 2004 6 21.07.2004 10:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php anmeldeformular fehlerrückgabe, onsubmit firefox, formular onsubmit firefox, rückgabe form, php rückgabewert funktion formular, html formular rückgabewerte, php form action mit rückgabewert, php formular rückgabe nummer, php akzeptier formular, firefox ajax form return false, firefox onsubmit return false, form action=\javascript:false;\ firefox, php form rückgabewert, onsubmit=\return false;return, form action false, submit return false trotzdem neu geladne, php rückgabe formular, php onsubmit firefox, html formular fehlerrückgaben, ajax send() ff

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum