我在解决代码的问题时遇到了一些麻烦。
我有一个包含一些可编辑字段的表单。还有三个单选按钮
打开可编辑表单,并根据数据库值预先选择单选按钮。例如,如果status = 2
的数据库值,则默认选择inactive
单选按钮。
有时打开表单并且没有选择任何单选按钮。
例如;
注意:未定义的索引:第26行的C:\ xampp \ htdocs ... \ edit-data.php中的状态
我在下面的代码中突出显示第26行。我很感激任何帮助或建议。
我的(缩小的)代码如下;
修改-data.php
if (isset($_POST['btn-update'])) {
$itemId = $_GET['edit_id'];
$status = $_POST['status']; // <---- line 26
if ($crud->update($itemId, $status)) {
$msg = "Record was updated successfully";
} else {
$msg = " While updating record!";
}
}
<form method='post'>
<table class='table table-bordered'>
<tr>
<td>ID</td>
<td>
<input type='text' name='itemId' class='form-control ' value="<?php echo $itemId; ?>" required disabled>
</td>
</tr>
<tr>
<td>Notes</td>
<td>
<input type='text' name='notes' class='form-control' value="<?php echo $notes; ?>" required>
</td>
</tr>
<tr>
<td>Status</td>
<td>
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default <?php if ($status == '1' ) echo 'active btn-success' ; ?>">
<input type="radio" name="status" id="option1" value="1" autocomplete="off"> Active
</label>
<label class="btn btn-default <?php if ($status == '2' ) echo 'active btn-warning' ; ?>">
<input type="radio" name="status" id="option2" value="2" autocomplete="off"> Inactive
</label>
<label class="btn btn-default <?php if ($status == '3') echo 'active btn-danger' ; ?>">
<input type="radio" name="status" id="option3" value="3" autocomplete="off"> Not Found
</label>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<button type="submit" class="btn btn-primary" name="btn-update">
<span class="glyphicon glyphicon-edit"></span> Update this Record
</button>
<a href="index.php" class="btn btn-large btn-danger"><i class="glyphicon glyphicon-backward"></i> Cancel</a>
</td>
</tr>
</table>
</form>
//The (working) **javascript** to add/remove radio button classes is;
<script>
$(document).ready(function() {
$('#option1 ,#option2, #option3').change(function() {
$('#option1').parent().removeClass('btn-success').addClass("btn-default")
$('#option2').parent().removeClass('btn-warning').addClass("btn-default")
$('#option3').parent().removeClass('btn-danger').addClass("btn-default");
if ($(this).attr('id') == 'option1')
$(this).parent().removeClass("btn-default").addClass("btn-success");
else if ($(this).attr('id') == 'option2')
$(this).parent().removeClass("btn-default").addClass("btn-warning");
else
$(this).parent().removeClass("btn-default").addClass("btn-danger");
});
});
</script>
crud.php
class crud {
public function update($itemId, $status) {
try {
$stmt = $this->db->prepare("UPDATE items SET
itemId=:itemId,
status=:status
WHERE itemId=:itemId ");
$stmt->bindparam(":itemId", $itemId);
$stmt->bindparam(":status", $status);
$stmt->execute();
return true;
} catch (PDOException $e) {
echo $e->getMessage();
return false;
}
}
}