Visualizzazione risultati 1 fino 19 di 19

Discussione: problema con checkbox..

  1. #1
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito problema con checkbox..

    non so se è possibile inserire una parte di php nell'action della pagina ..mi spiego meglio:
    Codice PHP:
    <form method="post" action="<?php if($_POST['opzioni'] == 1) echo 'giusta.php';
    elseif (
    $_POST['opzioni'] == 2) echo 'sbagliata.php';
    else echo
    'retry.php'; ?> ">
    <fieldset>
    <input style="WIDTH: 106px; HEIGHT: 129px" value="1" name="opzioni" size="106" type="radio">
    <input style="WIDTH: 106px; HEIGHT: 129px" value="2" name="opzioni" size="106" type="radio">
    <input type="submit" value="conferma" name="confirm">
    </fieldset>
    </form>
    mi esce sempre la pagina retry.php ... qualcuno mi spiega il perchè?
    Ultima modifica di icfast : 10-10-2011 alle ore 18.24.50

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,806

    Predefinito

    Prova a modificare le costanti come caratteri, ovvero sostituire nei vari if:

    Codice PHP:
    if($_POST['opzioni'] == 1)
    con
    Codice PHP:
    if($_POST['opzioni'] == '1')
    E lo stesso con il 2...

    Ciao!

  3. #3
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    guardi ho semi-risolto in questo modo
    Codice PHP:
    <form method="post" action="">
    <fieldset>
    <input style="WIDTH: 106px; HEIGHT: 129px" value="1" name="opzioni" size="106" type="radio">
    <input style="WIDTH: 106px; HEIGHT: 129px" value="2" name="opzioni" size="106" type="radio">
    <input type="submit" value="conferma" name="confirm">
    </fieldset>
    </form>
    <?php
    if($_POST['opzioni'] == '1') echo 'giusta.php';
    elseif (
    $_POST['opzioni'] == '2') echo 'sbagliata.php';
    else echo
    'retry.php';
    ?>
    cioè le condizioni le ho impostate dopo la parte html..
    quindi ora al click sul submit appare la scritta 'giusta.php' o 'sbagliata.php' però non si viene indirizzati alla pagina...per farsi un'idea più chiara se mi può aiutare la invito a entrare in icfast.altervista.org e dare un'occhiata
    Ultima modifica di icfast : 10-10-2011 alle ore 20.28.25

  4. #4
    Guest

    Predefinito

    intanto io proverei a farmi stampare prima il valore di $_POST['opzioni'] tanto per togliermi qualche dubbio.

    Poi proverei anche

    Codice PHP:
    <form method="post" action="<?php if($_POST['opzioni'] == 1) {echo 'giusta.php' ;
    }elseif (
    $_POST['opzioni'] == 2) {echo 'sbagliata.php';
    }else {echo
    'retry.php'};?>">
    Infine, personalmente scritta così non piace, avrei fatto

    Codice PHP:
    <?php
    if($_POST['opzioni'] == 1) {
    $action = 'giusta.php';
    }elseif (
    $_POST['opzioni'] == 2) {
    $action = 'sbagliata.php';
    }else{
    $action = 'retry.php';
    }
    ?>

    <form method="post" action="<?php echo $action; ?>">
    PS: ma che c'entra checkbox col problema?
    Ultima modifica di simpleticket : 10-10-2011 alle ore 20.30.03

  5. #5
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    perchè non fare il loop if prima e all'esterno dell'action:

    Codice PHP:
    <?php
    if($_POST['opzioni'] == 1) $act='giusta.php' ;
    else if (
    $_POST['opzioni'] == 2) $act='sbagliata.php';
    else
    $act='retry.php';
    ?>

    <form method="post" action="<?=$act?>">
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  6. #6
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    ok ma ci avevo provato e per attenermi all'ultimo suggerimento che mi avete dato provo a mostrarvi il codice per intero:
    Codice PHP:
    <?php
    if($_POST['opzioni'] == 1) $act='giusta.php' ;
    else if (
    $_POST['opzioni'] == 2) $act='sbagliata.php';
    else
    $act='retry.php';
    ?>

    <form method="post" action="<?=$act?>">

    <input style="WIDTH: 106px; HEIGHT: 129px" value="1" name="opzioni" size="106" type="radio">
    <input style="WIDTH: 106px; HEIGHT: 129px" value="2" name="opzioni" size="106" type="radio">
    <input type="submit" value="conferma" name="confirm">

    </form>
    il risultato è sempre retry.php...
    mi sapete dire dove sbaglio?

  7. #7
    Guest

    Predefinito

    prova a fare così (te lo avevo già scritto)

    Codice PHP:
    <?php
    echo "opzioni=".$_POST['opzioni']."<br />";

    if(
    $_POST['opzioni'] == 1) $act='giusta.php' ;
    else if (
    $_POST['opzioni'] == 2) $act='sbagliata.php';
    else
    $act='retry.php';
    ?>

    <form method="post" action="<?=$act?>">

    <input style="WIDTH: 106px; HEIGHT: 129px" value="1" name="opzioni" size="106" type="radio">
    <input style="WIDTH: 106px; HEIGHT: 129px" value="2" name="opzioni" size="106" type="radio">
    <input type="submit" value="conferma" name="confirm">

    </form>
    e vedi che valore ha la variabile $_POST['opzioni'].

  8. #8
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    può vedere lei stesso il risultato su www.icfast.altervista.org
    non mi raccapezzo del motivo di tele risultato!

  9. #9
    Guest

    Predefinito

    ma se non passi nessuna variabile, è normale che vedi la pagina retry.php

  10. #10
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    per passare la variabile non è sufficiente inserire
    Codice PHP:
    $_POST['opzioni']
    subito dopo il tag <?php ?

  11. #11
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    l'action è retry.php, per forza ... $_POST['opzioni'] non potrà essere mai uguale ne a 1 ne a 2....per via del loop if else .... $act sarà sempre = retry.php
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  12. #12
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    ma quindi dove ho sbagliato? cioè come faccio a fare sì che quando ho selezionato 1 si apra 'giusto.php' e quando seleziono 2 si apra 'errato.php' ?

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da icfast Visualizza messaggio
    per passare la variabile non è sufficiente inserire
    Codice PHP:
    $_POST['opzioni']
    subito dopo il tag <?php ?
    l'array superglobale $_POST contiene tutte le variabili passate col metodo POST.
    Se vuoi passare argomenti conl metodo GET (tipo index.php?id=1&opzioni=2...) cambia $_POST con $_GET.

    OPS scusa.

    penso di aver capito e con una sola pagina non so se ce la puoi fare (non conosco esattamete quello che vuoi fare).
    E' normale che vai sempre su retry poichè quando carichi la pagina la variabile opzioni non è impostata e quindi gli if ti rimandano a retry.php, mentre a te serve che l'action sia la stessa pagina...
    Ultima modifica di simpleticket : 10-10-2011 alle ore 20.58.19

  14. #14
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    per far capire come funziona, prova a mettere al posto di:
    Codice PHP:
    $act='retry.php';

    //metti:
    $act='index.php';
    perchè index.php è la pagina dove hai scritto il codice...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  15. #15
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    no forse non mi spiego... vorrei arrivare a giusta.php SOLTANTO premendo '1'... premendo '2' andrei a finire in sbagliata.php e sennò in retry.php... ho provato co gli esempi sopra postati a risolvere ma non sono riuscito... per cui mi appello a voi..


    @eurosalute ho fatto ciò che mi hai detto
    Ultima modifica di icfast : 10-10-2011 alle ore 21.06.47

  16. #16
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    per farti capire che i dati vengono inviati col il metodo POST dopo che hai cliccato sul pulsante submit.....

    per il loop if else $act invierà sempre a index.php al primo click.....

    spero che hai capito adesso?

    quindi non puoi fare così....!


    DEVI FARE UN header location.....
    Ultima modifica di EuroSalute : 10-10-2011 alle ore 21.25.04 Motivo: più info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  17. #17
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    ok ... Ma quindi un'alternativa a quello k ho scritto quale è? Cioè come dovrei scrivere?
    Comunque simpleticket si, hai capito bene, l'azione è sulla stessa pagina...
    Ultima modifica di icfast : 10-10-2011 alle ore 21.34.34

  18. #18
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    te lo detto devi fare un header location della pagina ....va lanciato prima di ogni output, prova così:

    Codice PHP:
    <?php
    if($_POST['opzioni'] == 1) header('Location: giusta.php');
    else if (
    $_POST['opzioni'] == 2) header('Location: sbagliata.php');
    else
    $act='index.php';
    ?>

    <form method="post" action="<?=$act?>">

    <input style="WIDTH: 106px; HEIGHT: 129px" value="1" name="opzioni" size="106" type="radio">
    <input style="WIDTH: 106px; HEIGHT: 129px" value="2" name="opzioni" size="106" type="radio">
    <input type="submit" value="conferma" name="confirm">

    </form>
    oppure:

    Codice PHP:
    <?php
    if (isset($_POST['confirm'])) {//nome del pulsante submit
    //con refresh imposti il time-out
    if($_POST['opzioni'] == 1) header('refresh:0;url=giusta.php');
    else if (
    $_POST['opzioni'] == 2) header('refresh:0;url=sbagliata.php');
    else
    header( 'refresh:0;url=retry.php' );

    }
    ?>

    <form method="post" action="index.php">

    <input style="WIDTH: 106px; HEIGHT: 129px" value="1" name="opzioni" size="106" type="radio">
    <input style="WIDTH: 106px; HEIGHT: 129px" value="2" name="opzioni" size="106" type="radio">
    <input type="submit" value="conferma" name="confirm">

    </form>
    Ultima modifica di EuroSalute : 10-10-2011 alle ore 21.57.18 Motivo: più info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  19. #19
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    grazie ho risolto

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •