2017-11-22 20 views
0

私はテーブルを作成し、各行に2つのラジオボタンを作成するHTMLコードがあります。私はループと私の間に使用した各行のラジオボタンに異なる名前を付けてくれました。 解決方法未定義オフセット:phpのエラー

<form action = "submit_varification.php" method = "POST" onclick = "return validate()"> 

         <div style="position: absolute; left: 50px; top: 90px;"> 
         <label class="right"><font color="white">Date:</font></label> 
         <input type="text" id = "frmDate" /><br> 
         <p id="date"></p> 
         </div> 
         <div style="position: absolute; left: 250px; top: 91px;"> 
         <label class="right"><font color="white">V-ID:</font></label> 
         <input type="text" id = "myText" name = "reviewer" value = ""/><br> 
         </div> 
         <div style="position: absolute; left: 900px; top: 91px;"> 
         <button type="button" name="show" id="show" onclick = "" >History</button> 
         </div> 
         <div style="position: absolute; left: 900px;"> 
         <input type="submit" name="test" id="test" value="Submit" /><br/> 
         </div> 

        <script> 
        var date = new Date(); 

        document.getElementById("frmDate").value = (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear(); 

        </script> 
       </body> 
       <table style="position: absolute; width:95%; left: 20px; top: 150px;" id = "table1"> 
        <?php 
        $myDate = date('m/d/Y'); 
        ?> 
         <tr> 
         <th>Date</th> 
         <th>Time</th> 
         <th>Alias</th> 
         <th>Machine_Name</th> 
         <th>Build_Name</th> 
         <th>Build_version</th> 
         <th>WinDBG</th> 
         <th>.Net_Framework</th> 
         <th>Status</th> 
         </tr> 
         <?php 
          //get records from database 
          $sql3 = "SELECT * FROM data WHERE `Date` = '".$myDate."' ORDER BY id DESC"; 
          $query = $conn->query($sql3); 
          if($query->num_rows > 0){ 
          $i = 0 ; 
          while($row = $query->fetch_assoc()){ ?> 
          <tr> 
          <td><?php echo $row['Date']; ?></td> 
          <td><?php echo $row['Time']; ?></td> 
          <td><?php echo $row['Alias']; ?></td> 
          <td><?php echo $row['Machine_Name']; ?></td> 
          <td><?php echo $row['Build_Name']; ?></td> 
          <td><?php echo $row['Build_Version']; ?></td> 
          <td><?php echo $row['WinDBG']; ?></td> 
          <td><?php echo $row['.NET_Framework']; ?></td> 
          <td style='white-space: nowrap'><form><label class = "ready"><input type="radio" name="[<?php $i ?>]" value = "Ready">Ready</label><label class = "notready"><input type="radio" name="[<?php $i ?>]" value = "Not Ready" >Not Ready</label></form></td> 
          </tr> 

          <?php $i++ ; } } ?> 


         </table> 


         </form> 

であり、Iは、データベースに各列の値を格納します。私はフォーム上でPOSTメソッドを使用しました。そして私は、データベースにあるラジオボタンの値を取るしようとしていますが、私は

Notice: Undefined offset: 0 in C:\wamp64\www\submit_varification.php on line 33 
Notice: Undefined offset: 1 in C:\wamp64\www\submit_varification.php on line 33 
Notice: Undefined offset: 2 in C:\wamp64\www\submit_varification.php on line 33 

とPHPコードのようなエラーが直面しています:

$query = $conn->query($sql4); 
         if($query->num_rows > 0){ 
         $i = 0 ;  
         while($row = $query->fetch_assoc()){ 


          //...insert into your DB. 
         $row1 = $row["Date"]; 
         $row2 = $row["Time"]; 
         $row3 = $row["Alias"]; 
         $row4 = $row["Machine_Name"]; 
         $row5 = $row["Build_Name"]; 
         $row6 = $row['Build_Version']; 
         $row7 = $row["WinDBG"]; 
         $row8 = $row[".NET_Framework"]; 

         $status = $_POST["$i"]; // this is the error 


         $sql5 = "INSERT INTO history (`Date`, `Time`, `Alias`, `Machine_Name`, `Build_Name`, `Build_version`, `WinDBG`, `.NET_Framework`, `Status`, `Reviewed_By`) 
         VALUES ('".$row1."','".$row2."','".$row3."','".$row4."','".$row5."','".$row6."','".$row7."','".$row8."', '".$status."', '".$reviewer."') "; 
         if ($conn->query($sql5) === TRUE) { 
         //echo "New record created successfully"; 
         //echo nl2br("\n"); 
         echo ""; 

         } else { 
         echo "Error: " . $sql5 . "<br>" . $conn->error; 
         } 

         $i++ ; 
         } 
         } 

は、誰もがこのための任意のソリューションを持っているのですか?

+0

あなたはより多くのHTMLを提供できますか? – Cashbee

+0

はい確かに.......... –

+0

しかしどうやって? –

答えて

0

ループごとに$ iを配置する配列をダンプします。私は、配列にはname="[<?php $i ?>]"が期待している配列キーがないと賭けるだろう。

0

名前属性で角括弧を削除して、正しく機能しているかどうかを確認できますか。以下のコードです:あなたができる

<td style='white-space: nowrap'> 
<form><label class = "ready"> 
    <input type="radio" name="<?php $i ?>" value = "Ready">Ready</label> 
    <label class = "notready"><input type="radio" name="<?php $i ?>" value = "Not Ready" >Not Ready</label> 
</form> 

プラスあなたには、いくつかの静的なテキストは、名前の欄に、サーバー側で追加されている場合、それは良いだろう、ループはそれ:

<td style='white-space: nowrap'> 
<form><label class = "ready"> 
    <input type="radio" name="status_<?php $i ?>" value = "Ready">Ready</label> 
    <label class = "notready"><input type="radio" name="status_<?php $i ?>" value = "Not Ready" >Not Ready</label> 
</form> 

これが役立つかどうか教えてください。

+0

私はあなたをお試しくださいideaと私はこのようなPHPコードの行を変更します: –

+0

$ status = $ _POST ["status _"] [$ i]; –

+0

しかし、それは1つの行の後者のようにデータベースにデータを書き込んでいます。 –

0

ネストされたフォームを作成します。ラインにこれ​​に

<td style='white-space: nowrap'><form><label class = "ready"><input type="radio" name="[<?php $i ?>]" value = "Ready">Ready</label><label class = "notready"><input type="radio" name="[<?php $i ?>]" value = "Not Ready" >Not Ready</label></form></td> 

を置き換える:

<td style='white-space: nowrap'><label class = "ready"><input type="radio" name="<?php $i ?>" value = "Ready">Ready</label><label class = "notready"><input type="radio" name="<?php $i ?>" value = "Not Ready" >Not Ready</label></td> 

ゴパルのpanadiが述べたように。また、ブラケットを取り外します。
さらに、の入力タグをラベル内に入れることができるかどうかはわかりません。彼らはお互いの隣にいてはいけないのですか?

編集:それが失敗した場合は、$ _POST配列をダンプし、ラジオの値が$ _POSTにあるかどうかを確認します。 var_dump($_POST);die();

関連する問題