У меня есть страница (auditplanentry.php), которая содержит элементы управления формой для ввода данных. после того, как данные будут сохранены в mysql, используя запрос PDO в том же файле php. Im, отображающий все данные в виде таблицы на другой странице PHP (auditplan.php). В том, что в каждой строке у меня есть кнопка редактирования, после нажатия на нее другая php-страница (auditplanedit.php) с теми же формами, которые заполняются данными из mysql. После редактирования это обновление im в mysql с помощью запроса Update на той же странице auditplanedit.php. Здесь я хочу знать, как я могу использовать ту же страницу auditplanentry.php как для входа, так и для обновления. Здесь im повторяет ту же форму управления кодированием на другой странице, кроме im, определяя значения для элементов управления из mysql.Вставьте и отредактируйте данные, используя ту же форму в php
Просто дайте мне понять, как это сделать.?
auditplanentry.php
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Year:</label>
<div class="col-sm-5">
<input type="text" class="form-control col-xs-3" id="year" name ="year">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Month:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="month" name ="month">
</div>
</div>
//query code:
$sql = "INSERT INTO auditplan(auditid,year,month,status,comment) VALUES " . "(:audit, :year, :month, :status, :comment)";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":audit", $audit);
$stmt->bindValue(":year", $year);
$stmt->bindValue(":month", $month);
$stmt->bindValue(":status", $status);
$stmt->bindValue(":comment", $comment);
// execute Query
$stmt->execute();
}
catch (Exception $ex)
{
$_SESSION["errorType"] = "danger";
$_SESSION["errorMsg"] = $ex->getMessage();
}
auditplanedit.php
<?php
include("config.php");
include("header.php");
try {
$sql = "SELECT * FROM auditplan WHERE id = :cid";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":cid",intval($_GET['cid']));
$stmt->execute();
$results = $stmt->fetchAll();
} catch (Exception $ex) {
echo $ex->getMessage();
}
?>
<div class="form-group">
<label class="control-label col-sm-2" for="pwd">Year:</label>
<div class="col-sm-5">
<input type="text" class="form-control col-xs-3" id="year" name ="year" value="<?php echo $results[0]["year"] ?>">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="usr">Month:</label>
<div class="col-sm-5">
<input type="text" class="form-control" id="month" name ="month" value="<?php echo $results[0]["month"] ?>">
</div>
</div>
//database query:
$sql = "UPDATE auditplan SET auditid = :audit, year = :year, month = :month, status = :status, comment = :comment" . " WHERE id = :cid ";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":audit", $audit);
$stmt->bindValue(":year", $year);
$stmt->bindValue(":month", $month);
$stmt->bindValue(":status", $status);
$stmt->bindValue(":comment", $comment);
$stmt->bindValue(":cid", $cid);
$stmt->execute();
}
catch (Exception $ex)
{
$_SESSION["errorMsg"] = $ex->getMessage();
}
header("Location:auditplan.php");
Кнопки в auditplan.php:
<?php $getId = $row["id"];?>
<td>
<a href="auditplanedit.php?cid=<?php echo $getId; ?>"><i class="ion ion-edit"></i></a>    
<a href="deleteauditplan.php?cid=<?php echo $getId; ?>" onclick="return confirm('Are you sure?')"><i class="ion ion-close"></i></a>
</td>
Если действие является редактированием, вы можете установить параметр '$ _GET ['action']' как 'edit' на странице' auditplanentry.php'. Если '$ _GET ['action']' установлен для редактирования, тогда выберите записи и отобразите их в текстовых полях и измените имя кнопки отправки. После этого в 'auditplan.php' проверьте, опубликовано ли действие редактирования или нет, и выполните обновление/вставку. – Apb
Вы можете использовать скрытое текстовое поле, в котором упоминаете свое действие .. Либо «новое», либо «обновление» .. Заполните это поле соответствующим образом. – Daniel
Вы знакомы с синтаксисом 'INSERT ... UPDATE'? – Strawberry