Formular nur abschicken, wenn was eingetragen ist

Dieses Thema im Forum "Webentwicklung" wurde erstellt von joop, 30. Juni 2007 .

  1. 30. Juni 2007
    Hallo jungs,
    wie oben beschrieben, möchte ich, dass das Formular nur abgeschickt werden kann, wenn
    etwas in die Felder eingetragen ist.
    Wäre sehr dankbar für eure Hilfe.
     
  2. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Das geht meines Erachtens nur mit Java-Script.
    Also im form-tag unter onSubmit den Funktionsnamen in javaScript angeben, dort prüfen und anschließend true oder false zurück geben.

    Wenn du kein JS verwenden willst, ist es nicht so schön, weil du auf deiner zweiten Seite zunächst prüfen musst, ob die Eingabe da ist. Wenn nicht, zurück zum anderen Dokument.
    Ist halt nicht so schön, weil man merkt, dass die Seite erneut geladen wird.

    Greetz
    the_player
     
  3. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Bau mit JavaScript eine Abfrage und fertig. Wo ist dein konkretes Problem?
     
  4. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Mein Problem ist, das ich kein Java kann
     
  5. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Dann geht man zuerst nach selfhtml und schaut sich erstmal alles an, bevor man geistlos andere für sich arbeiten läßt! Aber ich gebe dir gerne ein paar tips.

    Du kannst über das array document.formularname.elements iterieren und prüfen ob jedes feld gefüllt ist, falls ja true zurück geben, falls nein false zurück geben ... und dass über das submit event des formulars machen!
     
  6. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Lerne grade PHP und MYSQL, noch was? Frage ja nur, ob es auch anders geht. Mehr wollte ich nicht!
     
  7. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Falls du halbwegs handwerklich geschickt bist, kannst du dir die Funktion schon zusammenbasteln.
    Wenn das Feld leer ist, ist item.value == "". Falls du auf ein leeres Feld stoeßt, returnst du einfach false und das Formular wird nicht abgeschickt. Dazu koenntest du vielleicht noch ein alert machen, damit der User auch weiss, was los ist.
     
  8. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Jo das ist auch OK, aber hilft bei dieser Fragestellung nicht, du wirst aber durch PHP dann wissen, wie du eine For-Schleife schreibst und die kannst du z.B. benutzen um meinen und dudes, tipp zu befolgen. Ist alles nicht so schwer. Und auch das "return" von php wirste dann so bei JS wieder finden!
     
  9. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Hmm, danke für eure Hilfe, weiß trotzdem nicht wie ich das machen kann^^. Bin da nicht so der Profi drin, auch wenn man dafür nicht mal großartig was können muss ;P
     
  10. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    mann mann mann ...

    HTML:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
     <script language="javascript" type="text/javascript">
     //<![CDATA[
     /**
     * function check(oForm)
     * 
     * Simple function for checking if every input field is filled, this function
     * will return false if not and giving an additional error message.
     *
     * @param object oForm -> Form to be checked
     * @return bool
     */
     function check(oForm) {
     for (var i = 0; i < oForm.elements.length; i++) {//for-loop for every input element
     //error message if textfield is not filled
     if ((oForm.elements[i].type == 'text') && (oForm.elements[i].value == '')) {
     alert('Alles ausfüllen!');
     return false;
     }
     }//end - for-loop for every input element
     return true;
     }//end - function check(oForm)
     //]]>
     </script>
     <title>JS - Test</title>
     </head>
     <body>
     <form action="#" method="post" onsubmit="return check(this);">
     <input maxlength="255" name="test" size="30" type="text" />
     <button type="submit">Test</button>
     </form>
     </body>
    </html>
    
    ... untested
     
  11. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Wobei da dann bei 100 nicht ausgefüllten Feldern 100 mal die Message kommen würde. Userfreundlicher wäre es - imo - wenn man einmal 'ne Var setzt und dann später, wenn sie eben gesetzt ist, eine Fehlermeldung ausgibt.
     
  12. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Nabend Telefonzelle, darf ich dich kurz an die Bedeutung des "return false" innerhalb der Schleife erinnern?
     
  13. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    das geht auch mit php.

    machs ca. so :

    $ausgefüllt=0;
    if(empty($_POST['deinvariable'])==1) $ausgefüllt=1;
    if(empty($_POST['deinvariable2])==1) $ausgefüllt=1;
    if(empty($_POST['deinvariable3'])==1) $ausgefüllt=1;

    if($ausgefüllt==0) {
    # dein code um das alles weiterzuverarbeiten #
    }

    else {

    echo "<a href='index.php'>Bitte alle Felder ausfüllen</a>";

    }

    so schnappst du dir auch die user ohne javascript
     
  14. 30. Juni 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Schön dass du dich versuchst als Hühnchen zu beteiligen, aber PHP dient zur Auswertung des HTTP-Request und der Erstellung der Response, aber Browser - Events, wie hier im Thread gefordert, lassen sich damit nicht so ohne weiteres nicht steuern.
    Eine Kontrolle der Variablen muss "vor" der Verarbeitung des Servers natürlich auch nochmal überprüft werden, aber das ist nicht das Thema des Threads, sollte es doch das Thema sein, hätte man sich bei Erstellung des Threads besser ausdrücken sollen!

    Zumal dein PHP Code, selbst bei so wenig Zeilen, verbessert werden könnte.
     
  15. 1. Juli 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    was willst du an sowas simplen bitte verbessern ? und hast du das gefühl, dass ich mir hier annähern mühe gebe irgendwie perfekt zu coden, nur um ihm einen einblick zu geben wie er es machen kann ? das er es im endeffekt selbst machen muss ist klar. und ob die daten jetzt direkt geprüft werden bzw. der submit-button gesperrt wird bis alles voll ist oder ob php sagt das man nochmal zurück ist, das ist doch völlig egal. und was machen eg. die leute, die javascript aushaben ? munter drauflosspammen ?
    also, laber hier nicht von hühnchen wenn du selbst nicht durchblickst

    € : und nochmal zum hühnchen, selbst ich bin hier länger dabei als du :_D
     
  16. 1. Juli 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    PHP:
    <html>
    <head>
    <title>form</title>
    <script language="javascript">
    <!--
    function check()
    {
        var f = document.uform;
        var to = f.length;
        for(i=0; i<to; i++) {
            if(f[i].value == '') {
                alert(f[i].name+' ist leer');
                return false; //endfor
            }
        }
        //noch kein return?
        f.submit();
    }
    //-->
    </script>
    </head>
    <body>
    <noscript>
    <p align="center"><span style="font-size: 14px; font-weight: bold;">Bitte Javascript einschalten!</span></p>
    </noscript>
    <?php
        
    //javascript aus?
        
    $need  = array( "name" "dies" "das" );
        if(
    $_POST [ 'sub' ] ==  "mit" ) {
            
    //submit()
            
    $err  "" ;
            for(
    $i = 0 $i < count ( $need );  $i ++) {  
                if(
    $_POST [ $need [ $i ]] ==  "" ) {
                    
    $err  .=  " { $need [ $i ]}  ist leer" ;
                    
    $i  count ( $need );  //endfor
                
    }
            }
            
            
    //was vergessen?
            
    if( $err  != "" ) print  $err ;
            else {
                
    //weitermachen
                
    echo  "alles ausgefüllt" ;
            }
        }

    ?>
    <form action="<?php  echo  $_SERVER [ 'PHP_SELF' ];  ?>" method="post" name="uform">
        name:<input type="text" name="name" value="<?php  echo  $_POST [ 'name' ];  ?>" /><br/>
        dies:<input type="text" name="dies" value="<?php  echo  $_POST [ 'dies' ];  ?>" /><br/>
        das:<input type="text" name="das" value="<?php  echo  $_POST [ 'das' ];  ?>" /><br/>
        <input type="submit" value="send" onclick="check(); return false;" />
        <input type="hidden" name="sub" value="mit" />
    </form>
    </body>
    </html>
    mein vorschlag
     
  17. 1. Juli 2007
    Zuletzt von einem Moderator bearbeitet: 13. April 2017
    aW: Formular nur abschicken, wenn was eingetragen ist

    PHP:
    <? php
        
        

        
    $sTitle  $_POST [ 'sTitle' ];
        
    $sText   $_POST [ 'sText' ]; 
        
        

        
    if ((empty( $sTitle )) && (empty( $sText ))) {
            

            
    exit( '<a href="./index.php" title="Fehler">Bitte alle Felder ausfüllen</a>' );
        }
        

        
    print  'Viel Spass noch.' ;
    ?>
    die vielen Kommentare sind extra fuer dich. Die Einrückungen auch, denn diese gehören zu einem guten Script.


    Du bist ausfallend, weil ich dir mit deinem Posting angesehen habe, dass du genau die oben zitierte Meinung vertrittst und ich dir das gesagt habe. also ich persönlich finde es nicht ok, entweder man will helfen und zwar ordentlich oder man läßt es sein, nicht irgendeinen Dreck hinklatschen, ohne die Intention wirklich zu helfen, wie du ja jetzt auch fast wörtlich bestätigt hast.

    Soweit waren wir bereits vor dir auch schon, und trotzdem haben wir ihm, dem Thema entsprechend, bei Javascript Tipps gegeben, so wie er es auch wollte!

    Richtig das wäre das Thema dieses Threads! Zu dem du aber nichts beigetragen hast!

    Nein das ist nicht egal, denn wie du selbst sagst, was ist mit den User die JS aushaben, dazu sage ich aber auch nochmal was, und zum Zweiten, ist das offensichtliche Thema des Threads, JS und nicht PHP.

    Da du ja schon so lange dabei bist achte darauf, dass dein Beitrag sinnvoll ist und zum Thema passt. Begründe deine Meinung. .

    Ist dir nach eigener aussage ja oben egal, ob man es mit PHP auch noch prüft oder mit JS .... aber bevor du dieses "Flaming" gelassen hast, sagte ich bereits:

    .

    Ok werd ich in Zukunft beachten

    achso und du meinst, da dieser Nick erst seit Sep2006 registriert ist, bin ich erst seit Sep2006 dabei? Naja wenigstens hab ich mich seit 2006 produktiv beteiligt. Vielleicht du ja auch, bloß nicht unter diesem Nick, aber brauchtest jetzt aus irgendeinem Grund einen Zweitnick oder so ... mann weiß es nicht!? aber danke für deine Belehrung.
    Ich habe dir oben nett gesagt, dass dein Posting nicht zum Thema passt, aber wenn du wien Korintenkacker kommst, kann ich das auch!
     
  18. 1. Juli 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    ich glaube du hast was völlig falsch verstanden. ich sehe es nicht ein , in irgendeiner weise resourcenschonend und optimal zu coden, wenn es nur darum geht das prinzip zu erläutern.
    die kommentare kannst du dir sparen, bis auf das exit, was mach auch durch ein OR DIE() ersetzen könnte, hast du nichts neues verwendet. aber naja, vielleicht liest ja noch wer anders drüber. und du hast mich gleich nochmal falsch verstanden. ich wollte klarstellen, dass es aufs gleiche herauskommt, ob die daten während der eingabe oder danach geprüft werden und das PHP noch den vorteil hat, das man auch die eingaben der user kontrolliert die javascript ausgeschaltet haben. das thema des threads mag das prüfen von eingaben während er eingabe im formular sein, jedoch ist nichts falsch daran den ersteller darauf hinzuweisen das diese methode lücken hat. zu dem "bin schon ewig dabei, nur zu faul nen acc zu machen" brauch ich nichts sagen, oder ?
     
  19. 1. Juli 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Der junge mann, frug nach einer Möglichkeit das Event des Formularabsendens zu steuern und nicht die Kontrolle in PHP, wahrscheinlich weil er in PHP schon soweit ist das selbst zu kontrollieren, weswegen deine Erklärung in PHP doch absolut schnuppe für den Thread ist. Zusätzlich sagte ich dir, dass man deinen Code auch noch verbessern kann. Du hast das in Frage gestellt, also habe ich dir meine Version mal näher gebracht. Zusätzlich habe ich dir dann dargelegt, dass, wenn man schon irgendwas erklären will, es auch ordentlich tun sollte.
    Ok Manchmal kriege ich es bestimmt auch nicht selber hin, aber ich gebe mir Mühe und das fängt bei deinem Posting schon bei den fehlenden Postingcodes an. Einfach schnell mal was hingeklatscht.

    Falsches Verständnis sehe ich dort nicht unbedingt.


    Die spare ich aber nicht, weil ich damit dem hilfesuchenden auch erklären kann, was ich tue. Und das mache ich so gut wie in jedem Script, was ich hier poste.

    Da die Entwicklung hin zu PHP6 zeigt, dass viele Synonyme, Spaghetticodes etc. wegfallen sollen, benutze ich auch gerne "eindeutige" Funktionsaufrufe. die() stellt für mich nur ein Synonym von exit() dar, welches auch die PHP-Dokumentation zeigt und somit hier bei mir nicht benutzt wurde.

    Zusätzlich dazu kann man ein "or die()" ohne Änderung der Struktur von deinem und meinem Code nicht mal eben nutzen!

    Naja doch schon, ich vermeide mit Speicherung der POST- Variablen Redundanzen im Code, ich vermeide unnötige Aufrufe, z.B. 3 (im Vergleich zu dir) maximale empty - Aufrufe, wohingegen deine 3 Aufrufe minimal sind, ich spare die unnötige Variable "ausgefüllt" (zumal die in deinem Kontext total unsinnig genutzt wird), ich nutze "Stringzeichen" sinngemäß, ich schreibe nicht "if(empty($_POST['deinvariable'])==1) " was doppelt gemoppelt ist ...

    Nein es kommt eben nicht auf das gleiche raus! Es ist ein Muss, und nicht nur ein Vorteil oder eine Tätigkeit, die einen Vorteil birgt, mit einem serverside-Script nochmal zu kontrollieren! Auch hier nutzt du wieder eine Formulierung, die ich bereits oben zerpflügte, das hat nichts mit fehlendem Verständnis zu tun!

    Richtig, JS ist das Thema. Das PHP von dir war da eher überflüssig denn z.B. the_player deutet bereits im zweiten Posting das selbe an

    und auch joop selbst impliziert, dass ihn da PHP nicht so interessiert, weil er das vorgehen dort anscheinend kennt...

    .

    Achso, du meinst weil der Name MakenX Sep2006 angemeldet und seitdem genutzt wurde und ich dir das sagte, war ich vorher nicht angemeldet und aktiv? O doch, das war ich (auch wenn es dich nicht interessieren mag) und einige wenige Leute hier wissen auch mit welchem Nick.

    Aber lassen wir das nun, du kommst mir wie ein Korintenkacker, dann komme ich dir auch so, jedoch können wir uns auch einfach nun in der Mitte treffen, denn jeder in dem Thread hier ist sich einig, dass man die Daten auf dem Server noch kontrollieren muss und JS da nur einen Zusatz darstellen kann.
     
  20. 1. Juli 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Um mal wieder aufs Thema zurückzukommen. Was bei eurer Diskussion ein bisschen zu kurz gekommen ist.
    Da du erst am php lernen bist, hilft dir diese Info vielleicht weiter:

    php wird am Server ausgeführt, erstellt eine html-Seite und sendet diese an den Client. Wenn dort ein Button gedrückt wird, kannst du mit php nicht arbeiten, weil wir wie gesagt auf der Client-Seite sind. Auf Client-Seite gibt es dafür JavaScript, mit der man dynamisch auf den Klick reagieren kann.

    Die ganzen php-Schnippsel, die du hier gefunden hast, müssten darum auf einer neuen Seite sein. Zum Beispiel $_POST ist eine Variable (Array), in der die Eingaben vom Formular der Vor-Seite gespeichert sind.

    Darum würde ich dir JavaScript empfehlen, wenn keine gravierenden Gründe dagegensprechen. Und keine Sorge, das ist nicht viel neues zum Lernen. Die Syntax ist ggü. php ein bisschen anders, aber semantisch schon ähnlich...

    Greetz
    the_player
     
  21. 1. Juli 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Danke an alle, aber ich habe es jetzt mit php gemacht und es funktioniert auch so wie ich es haben wollte. Falls es jemanden interessiert in einer einfachen if-Abfrage.
     
  22. 8. Juli 2007
    AW: Formular nur abschicken, wenn was eingetragen ist

    Kannst du diese "einfache if-Anweisung" bitte posten?
    Vermute nämlich, dass alle deine Anfrage nicht so verstanden haben, wie du es meinst.
     
  23. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.