Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302

    Problema Salva e Stampa contemporaneamente

    Raga,
    ho un file salva.php che preleva tramite POST i dati inseriti in una form e li inserisce in un database.

    il mio problema è che allo stato attuale, l'utente prima deve salvare i dati, poi per poterli stampare deve andare in una maschera di ricerca, cercarsi il record appena inserito e inviarlo alla pagina stampa.php

    Vorrei che il programma, dopo l'esecuzione della query insert, recuperasse l'ultimo id inserito e indirizzasse l'utente alla pagina stampa.php.


    ho provato in questo modo:
    codice:
    header("location:stampa.php?id=" . mysql_insert_id()); 
    ma purtroppo non funziona


    questo il codice :
    codice:
    // QUERY DI INSERIMENTO SENZA UPPER, L'UPPER E' DEMANDATO AL COMANDO FOREACH
    $sql = "INSERT INTO `tabella` ecc. ecc.
    
    // Lanciamo la query:
    $result = mysql_query($sql);
    
    // RIMANDO ALLA PAGINA DI STAMPA RECUPERANDO L'ID COMMESSA
    header("location:pstampa.php?id=" . mysql_insert_id()); 
    
    // Stampo la query
    // echo $sql;  
    
    // controllo l'esito
    if (!$result) {
        die("Errore nella query $sql: " . mysql_error());
    }
    
    else
    echo '</br>';
    echo '</br>';
    echo '</br>';
    echo "<center><h3><font color=\"red\">I dati da te inseriti sono stati correttamente registrati</center>\n"; 
    echo "<center><h3><font color=\"red\">Prosegui con il menu' a destra</h3></center>"; 
    echo '</br>';
    
    // E chiudiamo la connessione a MySQL
    mysql_close();
    Allo stato attuale, esegue la query, entra dentro l'else e mostra il messaggio di corretto inserimento, senza il redirect
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Ho provato così

    codice:
    // Lanciamo la query:
    $result = mysql_query($sql);
    var_dump(mysql_insert_id());
    printf ("L'ultimo recod inserito ha l'identificativo %d\n", mysql_insert_id());
    
    
    // RIMANDO ALLA PAGINA DI STAMPA RECUPERANDO L'ID COMMESSA
    header("Location:pstampa.php?id=".mysql_insert_id()); 
    exit;
    Recupera correttamente l'id ma non effettua il redirect
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    codice:
    header("Location:".$link);
    funziona solo se non è stampato a video nulla prima della sua chiamata.
    anche uno spazio può bloccarlo.

    quindi se hai del testo html prima di php, non andrà.
    verifica anche che non vi sia uno spazio prima del tag di apertura <?php

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    302
    Quote Originariamente inviata da nexus Visualizza il messaggio
    codice:
    header("Location:".$link);
    funziona solo se non è stampato a video nulla prima della sua chiamata.
    anche uno spazio può bloccarlo.

    quindi se hai del testo html prima di php, non andrà.
    verifica anche che non vi sia uno spazio prima del tag di apertura <?php
    Grazie di cuore,
    ho risolto ricorrendo a javascript:
    codice:
    echo "<script type='text/javascript'>";
    echo "location.href='pstampa.php?id=" . mysql_insert_id() . " ';";
    echo "</script>";
    Se volete che la funzione di un programma non venga scoperta dall'utente, descrivetela nella documentazione...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.