PHP单选按钮值和未定义的索引

时间:2016-02-12 16:32:02

标签: javascript php html function pdo

我在解决代码的问题时遇到了一些麻烦。

我有一个包含一些可编辑字段的表单。还有三个单选按钮

  • 活动(db值1)
  • 无效(数据库值2)
  • 未找到(db value 3)

打开可编辑表单,并根据数据库值预先选择单选按钮。例如,如果status = 2的数据库值,则默认选择inactive单选按钮。

有时打开表单并且没有选择任何单选按钮。

例如;

  • 我打开第2项进行编辑(网址为' /inventory/edit-data.php?edit_id = 2')。
  • 单选按钮设置为“活动”,很好。
  • 我点击“无效”'并提交,表单确实提交数据,页面刷新成功消息',罚款。
  • 我留在页面上,选择“未找到”'并再次提交我收到以下错误;
  

注意:未定义的索引:第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> &nbsp; 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;
            }
        }
}

0 个答案:

没有答案