Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    Reperire le variabili da passare da una pagina all'altra con metodo POST

    Mi dispiace dover riscrivere il mio problema ma non c'è stato verso di risolverlo.
    Qualche passetto avanti l'ho fatto...ma non basta...

    In una pagina PHP ho eseguito una query che mostra i dati in una tabella. La seconda colonna di questa tabella avrebbe dovuto avere il contenuto selezionabile in modo tale che cliccando sui singoli contenuti si potesse aprire un'altra pagina PHP. In quest'ultima pagina devono passare 3 paramentri (laboratorio, sequenza_richiesta e esame).
    Dato che i parametri che passo non devono essere visibili nell'URL ho aggiunto all'interno della seconda colonna un radio per passare i dati con il metodo POST.
    A questo punto vi scrivo il codice che ho usato:
    Codice PHP:
    echo "<form action='richiesta.php' method ='POST'><table>\n<tr>";
    while ((
    $riga=oci_fetch_array($queryprimaOCI_NUM+OCI_RETURN_NULLS))){
        foreach (
    $riga as $key => $item){
            if(
    $key == 1){ //se sei nella seconda colonna
            
    $richiesta=$item//assegna il valore a $richiesta
            
    $query=oci_parse($c,"select SEQRICHIESTA from cons_esami_assegnare where RICHIESTA='".$richiesta."'"); //questa è la query per trovare la seqrichiesa corrispondente alla richiesta che ho in tabella (seqrichiesta non compare nella tabella
            
    oci_execute($query); //eseguo la query
            
    while (($ris2=oci_fetch_array($queryOCI_ASSOC))){
                foreach (
    $ris2 as $luck){ 
                         }
            }
            echo 
    "    <td> <input type='radio' name='richiesta' value=' ".$luck." ' onclick='this.form.submit()'>".($item !== null htmlentities($itemENT_QUOTES) :""). "</td>\n"//il radio passa il valore di $lcuk cioè la seq richiesta
            
    } else{
            echo 
    "    <td>".($item !== null htmlentities($itemENT_QUOTES) :""). "</td>\n";
                              }
        
         }
        echo 
    "</tr>\n";
    }
    echo 
    "</tr></form>" 
    A questo punto sono a metà dell'opera, nel senso che sono riuscita a passare il valore di seqrichiesta nell'altra pagina senza far vedere la variabile nell'URL e cliccando nel radio vicino alla richiesta visibile in tabella.
    Adesso dovrei aggiungere anche laboratorio e esame. Cioè devo riuscire a far passare anche queste variabili...come faccio??? O meglio, come faccio a fargli capire che deve passare il laboratorio e l'esame che si trovano nella stessa riga della sequenza che viene selezionata????
    Spero di essermi spiegata e spero anche che qualcuno si muoverà a pietà e mi risponderà...anche solo con qualche dritta!!!
    Ah...uno dei problemi miei più grandi è che non ho capito molto bene come lavora questo oci_fetch_array!!!
    Grazie

    Sara
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, non comprendo del tutto il tuo codice, in quanto quando utilizzi i due cicli, il while e il foreach, a vuoto senza inserire al suo interno nessuno codice...perchè?

    Codice PHP:
    while (($ris2=oci_fetch_array($queryOCI_ASSOC))){
                foreach (
    $ris2 as $luck){ 
                         }
            } 
    Da quello che ho compreso dal codice questa variabile $luck la utilizzi per passarla all'altra pagina, ma così per come hai scritto tu il codice $luck è sempre l'ultima istanza di $ris2.

    Infine ti consiglio per passare variabili da una pagine all'altra di utilizzare le input hidden di html...ti faccio un esempio.

    Codice PHP:
    echo "<input type='hidden name='laboratorio' value='il valore che vuoi che assuma laboratorio'>
    <input type='hidden name='sequenza_richiesta' value='il valore che vuoi che assuma sequenza_richiesta'>
    <input type='hidden name='esame' value='il valore che vuoi che assuma esame'>"

    Così al momento della chiamata di submit da parte del radio button, passa anche questi tre valori da te settati senza farli visualizzare a video.

    Purtroppo non conosco questa funzione oci_fetch_array...io per comunicare con il database utilizzo le funzioni mysql_query, mysql_fetch_array e così via.

  3. #3
    Come ti ho detto non ho ben capito il funzionamento di oci_fetch_array e quindi non so spiegarti perchè uso il ciclo a vuoto ma se lo tolgo non funziona...
    Cmq $luck non è sempre l'ultima istanza di $ris2 xkè ad ogni richiesta corrisponde il suo $luck...ho controllato! Quindi quella parte di codice è giusta!!!
    Utilizzerei anche l'input type hidden come dici tu...ma poi dovrei mettere un pulsante che invia i dati...no??? Oppure posso lasciare il radio per $luck e poi passare laboratorio e esame con l'input type hidden.

    "<input type='hidden name='laboratorio' value='il valore che vuoi che assuma laboratorio'>
    <input type='hidden name='esame' value='il valore che vuoi che assuma esame'>";

    Il mio problema è questo:

    "<input type='hidden name='laboratorio' value=' ".$laboratorio." '>";
    come faccio a trovare $laboratorio??? devo passargli un'altra query come quella che ho utilizzato per ritrovare $seqrichiesta???
    Ti giuro sto impazzendo...non c'è verso

  4. #4
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Allora prima capiamo come è fatta la tua struttura dati che hai alle spalle di questo sito, i valori laboratorio sequenza_richiesta e esame sono in delle tabelle diverse?se si, come dicevi tu devi passare una query per ogni valore diverso che ti serve...per i cicli a vuoto se funzionano vuol dire che magari è un meccanismo particolare di oci_fetch_array, quindi scusami se ti ho corretto .

    Utilizzerei anche l'input type hidden come dici tu...ma poi dovrei mettere un pulsante che invia i dati...no???
    No, non ne hai bisogno, in quanto il submit del form ti viene richiamato dall'evento onclick della radio.
    Codice PHP:
    echo "    <td> <input type='radio' name='richiesta' value=' ".$luck." ' onclick='this.form.submit()'>".($item !== null htmlentities($itemENT_QUOTES) :""). "</td>\n"//il radio passa il valore di $lcuk cioè la seq richiesta 
    .

  5. #5
    TABELLA= cons_esami_assegnare
    ATTRIBUTI=seqrichiesta (non presente nella tabella che visualizzo in php)
    richiesta
    laboratorio
    esame
    giornipassatiaccettazione
    campioni
    dataaccettazione
    giornicartaservizi

    Questa è la struttura che ho!!! Con mysql avrei fatto un ciclo per i che va da 1 a n dove n=mysql_num_row.....esiste anche un oci_num_row ma non restituisce il numero dei record come mysql e quindi non so che logica utilizzare per dirgli di prendere il laboratorio e l'esame corrispondenti alla richiesta che l'utente sceglie...
    Capito???

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    jcsnake
    stai dicendo che il campo radio ha lo stesso effetto del pulsante submit normale?
    quindi cosi si possono inviare più informazioni....

  7. #7
    se tu al pulsante radio metti questa opzione onclick='this.form.submit() funziona come un submit e se poi all'interno del form mette degli input type=hidden ti passa anche i loro valori, capito???

  8. #8
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Da come scrivi vedo che ha praticità con le funzioni mysql_* come mai allora non utilizzi quelle?hai qualche necessità per dover applicare le oci?Se così non fosse passa tranquillamente alle funzioni mysql_* . Per quanto riguarda la tabella
    TABELLA= cons_esami_assegnare
    ATTRIBUTI=seqrichiesta (non presente nella tabella che visualizzo in php)
    richiesta
    laboratorio
    esame
    giornipassatiaccettazione
    campioni
    dataaccettazione
    giornicartaservizi
    Se hai tutti in campi qui basta proiettarli tutti in un'unica volta.
    Codice PHP:
    $query=oci_parse($c,"select SEQRICHIESTA,laboratorio,esame from cons_esami_assegnare where RICHIESTA='".$richiesta."'"); //questa è la query per trovare la seqrichiesa corrispondente alla richiesta che ho in tabella (seqrichiesta non compare nella tabella 

  9. #9
    Non uso le funzioni mysql_* perchè il mio db è un db oracle e non mysql

    Per quanto riguarda quello che dici tu, sarebbe giusto ma ho fatto delle prove sul db e praticamente può succedere che una richiesta ad esempio 20044/2011 abbia assegnati ad essa più laboratori con i rispettivi esami. Di conseguenza non va bene richiamare tutto in una query.
    Aiutooooooooooooooooooooooooooooooooo
    Sto impazzendo....

  10. #10
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    laboratorio,esame e richiesta sono numerici?
    Codice PHP:
    //pagina uno
    echo '<input type="radio" name="richiesta" value="'.$idrichiesta.'-'.$idlaboratorio.'-'.$idesame.'" />';
    //pagina due

    list($idrichiesta,$idlaboratorio,$idesame) = explode('-',$_POST['richiesta']);//dopo i dovuti controlli su $_POST['richiesta'].... 
    Funziona anche se sono stringhe, magari occhio al carattere divisore o scegli bene cosa passare e ti è essenziale per eseguire la query per recuperare i valori della relazione.

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.