php lastInsertId (). Неопределенная переменная в значении формы для массива

У меня проблема с прохождением $last:

$last = $db->lastInsertId();

Мне нужно пройти lastInsertId() в массиве из поля формы

<input type="text" name="remi[]" value= '<?php echo $last; ?>' />

lastInsertId() работает, потому что рядом с формой я получаю правильный последний идентификатор:

// here $last variable is ok
<?php if(isset($last)){ echo $last; }; ?>

Но из формы:

remi: <input type="text" name="remi[]" value= '<?php echo $last; ?>' /><br />

Я получил:

DetalleRemisiones Object
(
[conn:DetalleRemisiones:private] => PDO Object
(
)

[table_name:DetalleRemisiones:private] => detalleremi
[id] =>
[remi] => Array
(
[0] =>
Notice:  Undefined variable: last in C:\xampp\htdocs\noe\remisiones_create_mas_remision3.php on line 85

[1] =>
Notice:  Undefined variable: last in C:\xampp\htdocs\noe\remisiones_create_mas_remision3.php on line 93

[2] =>
Notice:  Undefined variable: last in C:\xampp\htdocs\noe\remisiones_create_mas_remision3.php on line 98

)

Итак, как я могу пройти $last в форме ввода, чтобы получить последний идентификатор вставки?

вместо этого:

 [remi] => Array
(
[0] => 256
[1] => 256
[2] => 256
)

Вот мой код:

include_once 'config/database.php';

$database = new Database();
$db = $database->getConnection();

include_once 'objects/remisiones.php';
$remision = new remisiones($db);

include_once 'objects/detalleremisiones.php';
$detalleremision = new detalleremisiones($db);if($_POST){

$remision->clienteId = $_POST['clienteId'];
$remision->fecha = $_POST['fecha'];

$remision->create();
$last = $db->lastInsertId();

$detalleremision->remi = $_POST['remi'];
$detalleremision->trat = $_POST['trat'];
$detalleremision->precio = $_POST['precio'];
$detalleremision->cantidad = $_POST['cantidad'];

$detalleremision->create2();

}
?>

<form action="remisiones_create_mas_remision3.php" method="post">
<tr>
<td>Fecha</td>
<td><input type='text' name='fecha' class='form-control' required></td>
</tr>
<tr>
<td>Cliente</td>
<td>
<?php
// read the clientes from the database
include_once 'objects/remisiones.php';

$remision = new Remisiones($db);
$stmt = $remision->readclientes();

echo "<select class='form-control' name='clienteId' required>";
echo "<option>Seleccione cliente...</option>";

while ($row_cliente = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($row_cliente);
echo "<option value='{$id}'>{$clienteId} {$apellido} {$apellido2} {$nombre}</option>";
}
echo "</select>";
?>
</td>
</tr>

<br><br><br>

//
<?php // here $last variable is ok
if(isset($last)){ echo $last; }; ?>/remi: <input type="text" name="remi[]" value= '<?php echo $last; ?>' /><br />
trat: <input type="text" name="trat[]" /><br />
precio: <input type="text" name="precio[]" /><br />
cantidad: <input type="text" name="cantidad[]" /><br />

remi: <input type="text" name="remi[]" value= '<?php echo $last; ?>' /><br />
trat: <input type="text" name="trat[]" /><br />
precio: <input type="text" name="precio[]" /><br />
cantidad: <input type="text" name="cantidad[]" /><br />

remi: <input type="text" name="remi[]" value= '<?php echo $last; ?>' /><br />
trat: <input type="text" name="trat[]" /><br />
precio: <input type="text" name="precio[]" /><br />
cantidad: <input type="text" name="cantidad[]" /><br />
<input type="submit" value="Enviar">
</form>

1

Решение

Вы должны использовать isset также в HTML

remi: <input type="text" name="remi[]" value= '<?php if (isset($last)) echo $last; ?>'
0

Другие решения

Ваша переменная ‘Last’ не завершается или не выполняется, когда вы ее вызываете.

Несмотря на то, что вы можете проверить, установлена ​​ли переменная при ее вызове, лучше всего назначать переменные в верхней части вашего скрипта с пустыми значениями. Это лучше, потому что вам не нужно проверять все переменные перед их вызовом:

Поместите вверху вашего файла:

$last = "";
0

По вопросам рекламы [email protected]