2016-03-30 12 views
1

ユーザーが[submit]ボタンをクリックした後にSessionメソッドを使用して、入力値を別のページに渡そうとしました。

マイページには、「テキストボックスの追加」というボタンが1つ付いたフォームがあります。このボタンを使用すると、テキストボックスを単独で追加することができます。ここで

は私の現在のコード

$(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>

そして、ここでは、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"); 
     } 
    ?> 

、ここでセッションに値を代入するために私のコードは私が取得しようとした方法ですです第2ページの値

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

実際には2番目のページで結果を得ることができますが、ユーザーが4つのテキストボックスを追加するだけで、2番目のページの未定義インデックスと言ったエラーが発生します。これは、forループが2番目のページに10個のセッション変数を生成するためです。

この場合、代わりにforループを使用してセッション変数を取得する別の方法はありますか?

+0

代わりにカウンターで入力された名前を設定するのは、単に 'あなたが使用することができ、PHP側では。' 'の

答えて

3

i番目のテキストボックスが設定されているかどうか最初に確認する必要があります。印刷する前に確認する条件を追加してください。

<?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

完璧な人...ありがとう – stackacc

関連する問題