2013-11-10 18 views
6

Wow, das ist also peinlich. Dies soll nur eine weitere langweilige Webform sein. Ich habe schon viel getan, aber aus irgendeinem Grund möchte dieser nicht kooperieren. Fehle ich irgendwie etwas? Ich habe versucht, das stundenlang herauszufinden. Ich schwöre, ich habe versucht alles zu beheben, ohne Glück.Einfache Form keine Daten über _POST senden

Grundsätzlich versuche ich über $ _POST zu einer PHP-Datei zu senden. Irgendwann werde ich AJAX benutzen, aber im Moment kann ich das blöde Ding nicht zum POST bringen. Wenn Sie also auf "Senden" klicken, wird die richtige Seite angezeigt. Aber ich bekomme einen Fehler "Undefined Index (zeigt dann auf die Zeile, die ich meine $ _POST-Variable). Ich habe alles auf der PHP-Seite (signup1.php) auskommentiert, so dass jetzt alles es var_dump($_POST); ist, damit ich die sehen kann Daten und es ist nicht alles von _POST, die dumme Sache ist leer. Ich glaube wirklich, das Problem ist auf der HTML-Seite. Ich werde meinen Code genau posten. Es hat eine Tonne extra Divs für Styling und Layout-Zwecke. Ich werde behalte das alles für den Fall, dass dies der Grund für den Fehler ist, vielleicht wird einer von euch das wissen. Vielleicht merkst du auch, dass ich Bootstrap benutze. Vielleicht ist das etwas? Ich habe Bootstrap für Formulare benutzt und es hat funktioniert, aber wer weiß.

<form action="actions/signup1.php" method="post"> 
     <div class="row"> 
      <div class="col-md-6"> 
       <div class="form-group"> 
        <label for="name">Name:</label> 
        <input type="text" id="name" class="form-control" placeholder="John Smith"> 
       </div> 
      </div> <!-- end of name input column --> 
      <div class="col-md-6"> 
       <div class="form-group"> 
        <label for="phone">Phone Number:</label> 
        <input type="text" id="phone" class="form-control" placeholder="801-321-9876"> 
       </div> 
      </div> <!-- end of phone number input column --> 
     </div> <!-- end of first .row of inputs --> 

     <div class="row"> 
      <div class="col-md-6 column-sm-12"> 
       <div class="form-group"> 
        <label for="email">Email Address:</label> 
        <input type="text" id="email" class="form-control" placeholder="[email protected]"> 
       </div> 
      </div> <!-- end of email address input column --> 

      <div class="col-md-3 col-sm-6"> 
       <div class="form-group"> 
        <label for="city">City:</label> 
        <select id="city" class="form-control"> 
         <option>Las Vegas</option> 
         <option>Salt Lake City</option> 
         <option>I'll Choose a Default Later...</option> 
        </select> 
       </div> 
      </div> <!-- end of city dropdown --> 

      <div class="col-md-3 col-sm-6"> 
       <div class="form-group"> 
        <label for="type-of-phone">Type of Phone:</label> 
        <select id="type-of-phone" class="form-control"> 
         <option>iPhone</option> 
         <option>Android</option> 
         <option>Windows Phone</option> 
         <option>Blackberry</option> 
         <option>Other Cellphone</option> 
         <option>Landline</option> 
        </select> 
       </div> 
      </div> <!-- end of Smartphone Question Dropdown --> 
     </div> <!-- end of second .row of inputs --> 
     <div class="row"> 
      <div class="col-md-12"><input type="submit" value="Submit"></div> 
     </div> 
    </form> 

Wenn jemand eine Idee hat lass es mich wissen. ich zog mir die Haare aus. ich dachte, ich wäre auf alle Nacht mit Problemen, die es haben, die Datenbank abzufragen, oder mit dem AJAX zu verwirren, um es poliert zu machen, aber stattdessen kann ich nicht sogar über das Formular hinausgehen, das die RAW-Daten einreicht! Sehr frustrierend. Ich hoffe, dass jemand da draußen das Problem sehen kann.

Für die Aufzeichnung ist dies meine exactmessage, nachdem das Formular auf die signup1.php umleitet (ja, es geht auf die rechte Seite). Auf der PHP ist alles was ich mache ein Var_dump der ganzen $ _POST Variable.

var_dump($_POST); 

Und es zeigt mir dies:

array(0) { } 

Antwort

30

Sie sollten den Namen Attribut auf die Formularfelder hinzufügen.

Zum Beispiel:

<input name="phone" type="text" id="phone" class="form-control" placeholder="801-321-9876"> 
+1

vergaß, dass F $% #ing Arbeitete! Ah, Danke. Ich wusste, dass es so einfach sein würde. Ich habe "name" und "id" gemischt.Sie wollen also das 'For =" "' in den Labels mit dem 'name =' in der Eingabe übereinstimmen. Dann muss der Post den 'name' für das Array verwenden. Verstanden. Nun, ich werde diesen Fehler nie wieder machen :) Danke. Es wird mich nicht erlauben, die richtige Antwort für weitere 8 Minuten zu wählen. Ich werde es bald überprüfen. Danke noch einmal. – jacurtis

+0

Kein Problem, Kumpel! Eigentlich sollte das Attribut "for" des Labels der ID des Elements entsprechen, an das Sie es binden möchten. Wir sehen uns rund und viel Glück :) –

2

Versuchen Sie das Namensattribut für jeden Input-Tag und dem Tag select hinzufügen. Das sollte tun.

0

Verwendung redigiert Skript:

<form action="actions/signup1.php" method="post"> 
     <div class="row"> 
      <div class="col-md-6"> 
       <div class="form-group"> 
        <label for="name">Name:</label> 
        <input type="text" id="name" name="name" class="form-control" placeholder="John Smith"> 
       </div> 
      </div> <!-- end of name input column --> 
      <div class="col-md-6"> 
       <div class="form-group"> 
        <label for="phone">Phone Number:</label> 
        <input name="phone" type="text" id="phone" class="form-control" placeholder="801-321-9876"> 
       </div> 
      </div> <!-- end of phone number input column --> 
     </div> <!-- end of first .row of inputs --> 

     <div class="row"> 
      <div class="col-md-6 column-sm-12"> 
       <div class="form-group"> 
        <label for="email">Email Address:</label> 
        <input type="text" name="email" id="email" class="form-control" placeholder="[email protected]"> 
       </div> 
      </div> <!-- end of email address input column --> 

      <div class="col-md-3 col-sm-6"> 
       <div class="form-group"> 
        <label for="city">City:</label> 
        <select id="city" name="city" class="form-control"> 
         <option>Las Vegas</option> 
         <option>Salt Lake City</option> 
         <option>I'll Choose a Default Later...</option> 
        </select> 
       </div> 
      </div> <!-- end of city dropdown --> 

      <div class="col-md-3 col-sm-6"> 
       <div class="form-group"> 
        <label for="type-of-phone">Type of Phone:</label> 
        <select id="type-of-phone" name="type-of-phone" class="form-control"> 
         <option>iPhone</option> 
         <option>Android</option> 
         <option>Windows Phone</option> 
         <option>Blackberry</option> 
         <option>Other Cellphone</option> 
         <option>Landline</option> 
        </select> 
       </div> 
      </div> <!-- end of Smartphone Question Dropdown --> 
     </div> <!-- end of second .row of inputs --> 
     <div class="row"> 
      <div class="col-md-12"><input type="submit" value="Submit"></div> 
     </div> 
    </form> 

Ausgang:

enter image description here

0

Wenn Sie Post-Daten unter Verwendung von HTML-Formular-Tag möchten, können Sie es einfach überprüfen

print_r($_POST); 
0

Try Um jedem Feld Ihres Namens einen Namen zu geben Eingabefelder und geben Sie auch den Namen zum Senden Schaltfläche. So wird dein Problem gelöst.

1

Falls jemand anderes dieses Problem haben *

ich genau das gleiche Problem hatte. Mein Problem war jedoch, dass ich das method = "post" -Attribut auf meinem Formularelement