Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    form con metodo post dinamico

    Salve a tutti
    ho creato un modulo dove in primo luogo scelgo la tipologia di pacchetto da una select

    Se scelgo "pacchetto con volo" mi compaiono alcuni campi
    Se scelgo "pacchetto senza volo" faccio comparire altri campi

    Adesso vorrei fare in modo che la pagina di ricerca sia diversa proprio in base a questa scelta, quindi

    Se scelgo "pacchetto con volo" voglio aprire la pagina cerca-con-volo.php
    Se scelgo "pacchetto senza volo" voglio aprire la pagina cerca-senza-volo.php

    E' possibile fare questa cosa?

    Pensavo di creare una pagina intermedia tipo cerca.php che mi faceva il controllo e reindirizzava alla pagina di ricerca corretta, ma non so se è la via giusta/migliore...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Non serve una pagina intermedia, può farlo lo stesso script che riceve i dati del form, vedi quale delle 2 opzioni è stata scelta e in base a questa mostri i risultati su "cerca-con-volo.php" o "cerca-senza-volo.php".

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    quindi qualcosa tipo?



    if ($_POST['tipo_offerta'] == '"1") {
    vai a pagina cerca-con-volo.php";
    }
    if ($_POST['tipo_offerta'] == "2") {
    vai a pagina cerca-senza-volo.php";
    }

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Se vuoi gestire la cosa lato PHP si, l'alternativa sarebbe cambiare al volo l'action del form usando javascript intercettando il valore del campo in cui avviene la scelta, al verificarsi dell'evento "onchange" avvii una funzione js che a seconda del valore scelto modifichi l'action del form, così invii direttamente i dati al relativo script PHP.
    Questa cosa però ha senso se ci sono molte differenze di elaborazione dati tra i due casi, se ti cambia poco o niente è eccessivo fare due script php diversi.

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    non so se posso fare questa cosa con wordpress visto che il form sta in una pagina wordpress mentre la pagina di ricerca la sto creando io in php.

    In ogni caso sto provando a fare un test ma non mi fa il redirect alla pagina scelta

    $tipo_pacchetto=$_POST["tipo_offerta"];

    if($tipo_pacchetto=="1"){
    header("location: /nuova-pagina1.php");
    }
    if($tipo_pacchetto=="2"){
    header("location: /nuova-pagina2.php");
    }

    Dove sbaglio?
    Ultima modifica di allin81; 24-04-2021 a 18:48

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Stai usando Wordpress, devi rispettare il suo framework, che conosco poco e niente, quindi non so dirti perché non ti funziona.
    Intanto assicurati che $tipo_pacchetto contenga il valore corretto.
    Poi potrebbe anche essere che quando arrivi al tuo script, Wordpress abbia già emesso dell'output, nel qual caso header() non funziona.

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Il valore me lo passa senza problemi, ho messo un echo per essere sicuro.

    Come posso verificare se wordpress abbia già emesso un output?

    Dopo provo a creare un file vuoto solo con lo script, per vedere se mi funziona, magari ho messo io del codice nella pagina attuale che bypassare l'header() ma mi sembra strano perché era quasi ad inizio file, però per sicurezza faccio questo test

  8. #8
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    allora ho provato a mettere quell'if else alle prime righe del file ma non lo prendeva

    A quel punto ho risolto con un file chiamato cerca-redirect.php dove ho inserito l'if else e adesso funziona.

    Non so perche', ma con questo file intermedio funziona, l'unico problema è che non mi porta il contenuto dei campi del form nella pagina che deve riceverli...
    Stavo pensando di metterli in un campo nascosto ma non funzionerà perche' non c'e' un modulo intermedio, forse devo fare una sessione?
    Ultima modifica di allin81; 24-04-2021 a 22:08

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 © 2024 vBulletin Solutions, Inc. All rights reserved.