[PHP] Finestra poupup dentro IF

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao a tutti, dovrei inserire una finestra poupup all'interno di un ciclo IF.
Se la condizione è vera deve comparire una finestra con una domanda e risposta SI/NO. A seconda di cosa viene scelto, viene eseguito un comando PHP.
È possibile realizzarlo?
Grazie a tutti in anticipo
 
Ciao e grazie per la cortese risposta.

Ho provato il codice ma non fà nulla.Poi ho provato a vedere il link ma negli esempi c'è un pulsante da premere poi a seguito della pressione compare quello che serve a me e cioè la finestra con "OK" e "ANNULLA" , invece a me servirebbe che la finestra poupup parta al verificarsi di una condizione vera dell ' IF .

Esempio
IF (condizione)
{
finestra poupup con scelta "OK" e "ANNULLA"
se OK fai questo
se ANNULLA fai quest'altro
}
 
è in JS no php...! ovvio che devi scrivere l'action!
Da php
PHP:
if($my_cond){
  echo '<script> alert("Alert");</script>';
}else{
echo '<script> alert("OK");</script>';
}
 
Grazie per la cortese risposta.
Purtroppo non capisco, chiaramente colpa mia.
Se metto codice JS posso fare partire la finestra poupup con scelta "OK" "ANNULLA" solo al verificarsi di una condizione ?
Specifico qualcos'altro.
La condizione sarebbe il contenuto di una variabile $_GET.

Scusami ma avrai capito che il mio livello è basso :(
 
è in JS no php...! ovvio che devi scrivere l'action!
Da php
PHP:
if($my_cond){
  echo '<script> alert("Alert");</script>';
}else{
echo '<script> alert("OK");</script>';
}
Questo codice però non fà quello che serve a me
Compare la scritta "Alert" oppure "OK" a seconda della condizione IF
 
vedi questo codice,
PHP:
<?php
    ob_start();
?>
<script type="text/javascript">
  if (confirm("fai la tua scelta")) { txt = "hai scelto OK"; }
  else { txt = "hai scelto ANNULLA"; }
  document.write(txt);
</script>
<?php
    $txt = ob_get_clean();
    print_r($txt);
?>

upload_2019-11-1_17-57-1.png


upload_2019-11-1_17-57-34.png


oppure

upload_2019-11-1_17-58-21.png


ti può andare bene ?
 
Ciao stò provando però il risultato di $txt non è passabile tramite ciclo IF.

Codice:
if ($txt == "hai scelto OK")
            {
                fai questo
            }
        else
        {
            fai quest'altro
        }
non esegue ne il THEN ne l'ELSE
 
Ultima modifica:
È possibile risolvere in qualche modo ?

Tramite l'istruzione

$txt = ob_get_clean();

$txt non dovrebbe prendere il valore true o false ?
 
il problema é un poco più complicato perché
php sta sul server,
genera la pagina
la invia al client
ed il client non sa proprio più cosa sia php

penso comunque che, sia possibile fare quello che chiedi, strutturando lo script in "step",
tipo prima e dopo la conferma e nel mezzo ricaricando la pagina
questo obbliga a salvare i risultati intermedi in $_SESSION, nel caso ci siano

vedi se così può andare bene,
PHP:
<?php
function conferma($step=""){
?>
<script type="text/javascript">
    if (confirm("fai la tua scelta")) { var risposta = "hai scelto OK"; }
    else                              { var risposta = "hai scelto ANNULLA"; }

    var testo  = "risposta="+risposta+"; expires=Thu, 18 Dec 2019 12:00:00 UTC;";

    // alert(testo);

    document.cookie = testo;

    location.reload();
</script>
<?php
}

if(!isset($_COOKIE['risposta'])) {

// qui si fanno le azioni che precedono la conferma

    conferma();

} else {
    // foreach($_COOKIE as $v) { echo htmlentities($v, 3, 'UTF-8').'<br />'; }

    $risposta = htmlentities($_COOKIE['risposta']);
    echo $risposta.'<br />';

    setcookie("risposta", null);    // aggiunto

    if ($risposta == "hai scelto OK")
    {
        echo "fai questo";
    }
    else
    {
        echo "fai quest'altro";
    }
}
?>

upload_2019-11-4_1-32-57.png


upload_2019-11-4_1-33-45.png


ps, ho lasciato delle righe di "debug" per comodità

ps, la scelta viene passata con cookies
 
Ultima modifica:
  • Like
Reactions: solari77
pur non conoscendo la tua applicazione,
visto che comunque devi ricaricare la "pagina" ( location.reload(); )
permettimi la seguente considerazione,

può essere conveniente,
creare uno script php che esegue i "calcoli iniziali"
ed al termine presenta un form con i "bottoni" necessari,
form che attiva un secondo script,
che in funzione del bottone, completa i "calcoli" eseguendo "questo" o "quest'altro"

il processo é lo stesso, ma rimanendo nel solco della tradizione ….
 
Ciao la soluzione proposta sembra funzionare. ora farò altri test per avere la certezza che è tutto ok.
Ho dovuto inserire il comando
setcookie("risposta", null);
altrimenti funzionava solo al primo accesso ed ero costretto a cancellare i cookie manualmente.
Una curiosità.
Nello script c'è la seguente riga
var testo = "risposta="+risposta+"; expires=Thu, 18 Dec 2019 12:00:00 UTC;";

perchè questa data ?
 

Discussioni simili