I have a html code where I create a table and two radio button on each row. for giving different name to radio button on each row I used while loop and I++ way. that is
<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>
and I want to store the value of each row to a database. so I used POST method on the form. and I am trying to take the value of radio button to database but I am facing a error like
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
and the PHP code:
$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++ ;
}
}
is anyone have any solution for this?
Dump the array that populates $i for each loop. I would wager the array does not have the array key that the name="[<?php $i?>]"
is expecting.
Can you remove the brackets in the name attribute and see if its working correct. Below is the code:
<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>
Plus it would be better if you have some static text appended to the name column and in server side, you can loop it:
<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>
Let me know if this helps..
You make nested forms. replace the line
<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>
with this:
<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>
Also remove the brackets, like gopal panadi mentioned.
Furthermore I am not sure if you can have input tags inside labels. shouldn't they be next to each other?
Edit: after that if it fails, dump the $_POST array and see how/if the radio values are in $_POST. var_dump($_POST);die();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.