2016-03-30 10 views
1

Ich habe versucht, den Eingabewert vom Benutzer an eine andere Seite zu übergeben, indem ich die Session-Methode benutze, nachdem der Benutzer auf Senden geklickt hat.

Meine Seite hat ein Formular mit einer Schaltfläche, die als "Add Textbox" aufgerufen wird. Mit dieser Schaltfläche kann der Benutzer die Textbox selbst hinzufügen.

Hier ist meine aktuellen Code

$(document).ready(function() { 
 

 
    var counter = 2; 
 

 
    $("#addButton").click(function() { 
 

 
    if (counter > 10) { 
 
     alert("Only 10 textboxes allow"); 
 
     return false; 
 
    } 
 

 
    var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter); 
 

 
    newTextBoxDiv.after().html('<label>Textbox #' + counter + ' : </label>' + '<input type="text" name="textbox' + counter + '" id="textbox' + counter + '" value="" >'); 
 

 
    newTextBoxDiv.appendTo("#TextBoxesGroup"); 
 

 

 
    counter++; 
 
    }); 
 

 
    $("#removeButton").click(function() { 
 
    if (counter == 2) { 
 
     alert("System required at least one."); 
 
     return false; 
 
    } 
 

 
    counter--; 
 

 
    $("#TextBoxDiv" + counter).remove(); 
 

 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<form action="<?php $_PHP_SELF ?>" method="post"> 
 
    <div id='TextBoxesGroup'> 
 
    <div id="TextBoxDiv1"> 
 
     <label>Textbox #1 :</label> 
 
     <input type='textbox' id='textbox1' name="textbox1"> 
 
    </div> 
 
    </div> 
 
    <input type='button' value='Add Button' id='addButton'> 
 
    <input type='button' value='Remove Button' id='removeButton'> 
 
    <br/> 
 
    <input type="submit" name="submit" id="submit"> 
 
</form>

Und hier ist mein Code den Wert Sitzung in PHP

<?php 
     if(isset($_POST['submit'])) { 
      for($i=1; $i<=10; $i++) 
      { 
       if(isset($_POST['textbox'.$i])) 
       { 
        $obj = $_POST['textbox'.$i]; 
        echo $obj,'<br>'; 
        $_SESSION['textbox'.$i] = $obj; 
       } 
      } 
      header("Location:../brightan-system/result.php"); 
     } 
    ?> 

und hier ist, wie ich versuchte zu ordnen der Wert von der zweiten Seite

<?php 
    for($i=1; $i<=10; $i++) 
    { 
     echo "<strong>".$i."</strong> ".$_SESSION['textbox'.$i]."<br>";//Use the session variables 
    } 
    session_destroy(); 
?> 

Eigentlich kann ich ein Ergebnis auf der zweiten Seite erhalten, aber das Problem ist, wenn der Benutzer nur 4 Textfelder hinzufügen, dann wird es einen Fehler geben, der Undefined Index auf der zweiten Seite sagte. Dies liegt daran, dass die for-Schleife 10 Sitzungsvariablen auf der zweiten Seite erzeugt.

Gibt es eine andere Möglichkeit, die Sitzungsvariable zu erhalten, anstatt in diesem Fall die for-Schleife zu verwenden?

+0

Statt Eingangsnamen mit Zähler zu setzen, können Sie einfach ''

Antwort

3

Sie sollten zuerst überprüfen, ob ith Textfeld festgelegt ist oder nicht. Fügen Sie vor dem Drucken die Bedingung hinzu, die überprüft werden soll.

<?php 
for($i=1; $i<=10; $i++) 
{ 
    if(isset($_SESSION['textbox'.$i])){ 
    echo "<strong>".$i."</strong> ".$_SESSION['textbox'.$i]."<br>";//Use the session variables 
    } 
} 
session_destroy(); 

?>

+0

Perfect man ... Thanks – stackacc

Verwandte Themen