2016-05-24 9 views
1

Ich habe ein Problem vorbei $last:php lastInsertId(). Nicht definierte Variable in einem Formwert für Array

$last = $db->lastInsertId(); 

Ich brauche

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

lastInsertId() funktioniert, weil aus Formularfeld in der Nähe der Form lastInsertId() in Array übergeben ich die richtige letzte ID:

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

Aber von der Form:

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

Ich habe:

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 

     ) 

Also, wie kann ich $last in der Eingabemaske übergeben Sie die letzte Insert-ID zu bekommen?

für statt:

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

Hier ist mein Code:

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> 

Antwort

0

Sie müssen isset verwenden auch in html

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

Nein, ich versuchte es, aber es ist nicht. – rafpre

+0

[table_name: DetalleRemisiones: privat] => detalleremi [id] => [remi] => Array ( [0] => [1] => [2] => ) – rafpre

0

Ihre 'Last' Variable verlassen nicht oder ist nicht ausgeführt, wenn Sie es aufrufen.

Sie können zwar überprüfen, ob die Variable beim Aufruf verwendet wird, aber am besten würden Sie den Variablen im oberen Bereich des Skripts leere Werte zuweisen. Das ist besser, weil man nicht alle relevanten Variablen überprüfen müssen vor dem Aufruf von ihnen:

Platz beim Anfang der Datei:

$last = ""; 
+0

Keine Änderung. Ich habe [table_name: DetalleRemisiones: privat] => detalleremi [id] => [remi] => Array ( [0] => [1] => [2] => ) – rafpre

+0

Aber in Die letzte ID des Felds ist ok, remi 353 – rafpre

Verwandte Themen