#php #html
#php #HTML
Вопрос:
У меня есть форма редактирования данных, в которой пользователь выбирает идентификатор записи, которую он хочет отредактировать, в поле выбора.
Затем в следующем php-скрипте я печатаю существующие значения, а затем разрешаю пользователю изменять значения. После отправки формы данные формы отправляются с помощью GET в мой php-скрипт, который обновит значения для этой записи.
Моя проблема заключается в следующем, как мне включить идентификатор записи в остальные значения, отправляемые формой? Я не хочу использовать файлы cookie (если это возможно).
Вот мой код:
Первая форма:
<?php
$myTitle = 'Interface to edit a license';
require 'header.php';
$licid = $_GET ['license_id'];
$sql = 'select * from all_license where id =' . $licid;
$result = mysqli_query ( $con, $sql );
$rowm = mysqli_fetch_array ( $result )?>
<br>
<center>
<table>
<tr>
<td class="acentre">Select below what admin task you would like to do</td>
</tr>
<tr>
<td><?php require 'admmenu.php' ?></td>
</tr>
<tr>
<td class="acentre">Displaying the current values for license id: <?php echo $licid ?></td>
</tr>
<tr>
<td><form name="license_edit" action="e2license.php" method="get">
<center>
<table>
<tr>
<th>Field Name:</th>
<th>Existing Value:</th>
<th>New Value:</th>
</tr>
<tr>
<td>License ID:</td>
<td><?php echo $licid ?></td>
<td><input type="text" value="<?php echo $licid ?>" name="licid" disabled>
<tr>
<td>Product Name:</td>
<td><?php echo $rowm['prodname'] ?></td>
<td><?php require 'cmbprodname.php';?></td>
</tr>
<tr>
<td>Supplier Name:</td>
<td><?php echo $rowm['suppliername'] ?></td>
<td><?php require 'cmbsupplier.php';?></td>
</tr>
<tr>
<td>Lease Type:</td>
<td><?php echo $rowm['leasetype'] ?></td>
<td><?php require 'cmbleasetype.php'?></td>
</tr>
<tr>
<td>Expiry Date:</td>
<td><?php echo $rowm['expirydate'] ?></td>
<td><input type="text" id="datepicker" name="expirydate"></td>
</tr>
<tr>
<td>License Price:</td>
<td><?php echo toRand($rowm['licenseprice']) ?></td>
<td><input type="text" name="price"></td>
</tr>
<tr>
<td class="aright" colspan="3"><input type="submit"></td>
</tr>
</table>
</center>
</form></td>
</tr>
</table>
</center>
<?php
require 'footer.php';
?>
Затем второй:
<?php
$licid = $_GET['licid'];
$product_id = $_GET['prodname'];
$supplier_id = $_GET['supplier'];
$leasetype_id = $_GET['leasetype'];
$expirydate = $_GET['expirydate'];
$price = $_GET['price'];
require 'conn.php';
$sql = 'update license set product_id =' . $product_id;
$sql = $sql . ', leasetype_id =' . $leasetype_id;
$sql = $sql . ', supplier_id=' . $supplier_id;
$sql = $sql . ', expirydate=' . $expirydate;
$sql = $sql . ', price=' . $price;
$sql = $sql . ' where id=' . $licid;
echo $sql;
//$result = mysqli_query ( $con, $sql );
//header("Location: http://localhost/license/admin.php");
?>
Теперь код, напечатанный echo $sql, выглядит следующим образом:
update license set product_id =4, leasetype_id =4, supplier_id=3, expirydate=2014-07-14, price=5000 where id=
Таким образом, $licid, похоже, не передается из первого php-скрипта во второй (возможно, потому, что для ввода установлено значение disabled?. Как я могу этого добиться?
Комментарии:
1. Попробуйте
value="<?php echo $licid ?>" name="<?php echo $licid ?>"
вместоvalue="<?php echo $licid ?>" name="licid"
или использовать скрытое поле.2. Вам также может не хватать закрытия
;
$rowm = mysqli_fetch_array ( $result )?>
и ввода<?php require 'cmbsupplier.php';?>
Ответ №1:
Я бы просто использовал скрытое поле в вашей форме, в котором выводится идентификатор.
<input type="hidden" name="licid" id="licid" value="<?php echo $licid ?>">