- Home
- Categorie
- Coding e Sistemistica
- PHP
- Form scomparso
-
Ciao,
ci vorrebbe il sorgente per capire dove possa essere il problema.
-
Ciao!
Ecco il codice un po' semplificato:form.php
non ha nulla di particolare se non che richiama se stesso
form .... action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">Ecco questo php controlla e include il form:
if (!isset($_POST['bottone']))
// prima visualizzazione del modulo vuoto
{
include("form.php");
exit();
}
else
{
// ho vari pulsanti solo se confermo controllo i campi
if (($_POST['bottone']) == "Conferma") {
unset($array_errori);
// controllo i dati obbligatori CAMPI FILES
foreach ($_FILES as $type => $array) { // immagine es. imgpic imggra
if ( $array['name'] == "" ) // se il nome è vuoto
{
if ($type == "imgpic")
// solo nel caso dei files obbligatori
{
switch ($type){
case "imgpic":
$array_errori[] = "Inserire immagine";
break;
default:
$array_errori[] = "Errore {$type}";
break;
}
}
}
}
if (@sizeof($array_errori) > 0)
{ // se mancano dei campi lo segnalo
$erroreinsert = "Controlla i dati inseriti nel modulo: \r\n";
foreach($array_errori as $errore) {
$erroreinsert .= "{$errore} \r\n";
}
$erroreinsert = json_encode($erroreinsert); ?>
<script type="text/javascript">alert(<?php echo ($erroreinsert);?>); </script>
<?php
extract($_POST);
include ("form.php");
}
else {echo "Tutti i campi sono ok";
extract($_POST);
include("form.php");}
}
}Spero di non aver tralasciato niente di importante
Grazie
Patpat
-
Il codice sembra ok,
ma focalizzando l'attenzione al codice che stampa l'alert
[PHP]alert(<?php echo ($erroreinsert);?>);[/PHP]sei sicuro di non generare un errore javascript in caso di alcuni errori (che magari conengono apici o altri carateri speciali) e quindi non stampa il successivo form?
-
Condivico con topseo :
[PHP] alert(<?php echo ($erroreinsert);?>);[/PHP] Genera errore perchè non è incluso tra virgolette.
Prova così :
[PHP] alert('<?php echo ($erroreinsert);?>');[/PHP]
-
Grazie per le risposte!:)
Però il codice javascript non mi da problemi. I messaggi che visualizzo sono giusti.
Il problema è che quando clicco sul bottone di conferma, il messaggio js mi compare su una schermata bianca perdendo il form che ho sotto.
Dando l'ok sul messaggio js ritorna il form.
Mi sembrava una schifezza che scomparisse!
Che ne pensate??Ciao
Patpat
-
Sapete che mi succede anche se nell'alert visualizzo un testo fisso non una variabile ??!!!
:bho: Non so più che fare
Ciao Patpat
-
Adesso ho capito.
E' perfettamente normale, l'alert blocca l'esecuzione della pagina finchè non premi l'ok, per far stampare comunque il form sotto allora non devi far altro che spostare il codice che genera l'alert sotto a quello che include il form.
-
Ciao TopSeo!
Ho messo cosi:
extract($_POST);
include ("form.php");
?>
<script type="text/javascript">alert('errore');</script><?phpProvo a dare conferma varie volte di seguito a volte scompare a volte no
...per quello che all'inizio del post dicevo che non era sempre uguale...
Confido nella tua pazienza
Ciao
Patpat
-
Di nuovo io!
Ho visto che il tutto non funziona solo con IE 7 :p!Usavo proprio IE perchè mi fa sempre al contrario di quello che voglio!
E lo tenevo d'occhio!
Ma questa volta non ci ho pensato!:(E ora che posso fare?????
Ciao
Patpat
-
Ho trovato la soluzione per IE:
$errore = preg_replace("/\r?\n/", "\n", addslashes($errore));
echo "<script type="text/javascript">\n"; echo " alert("$errore");\n"; echo "</script>\n\n";Era un problema sui ritorni a capo.
Patpat