Как добавить значение к URL-адресу, переданному скрипту из формы

#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 ?>">