Newsgroup: it.comp.www.php
Titolo: piccolo problema.

Ciao a tutti,
mi trovo in una situazione un po' strana, mi spiego meglio.
Ho un form con diversi campi li chiamo A, B, C e un button per il submit.
Applico il metodo POST.
Lato server, rilevo i campi A,B,C usando $_POST[etc] quindi effettuo la
validazione dei campi in php e assegno l'esito alla variabile $errore, a
questo punto ho la struttura:
if ($errore) {
 // esegui il codice per visualizzare il messaggio di errore
} else {
 // nessun errore trovato... esegui il codice denominato "ALPA".
}
Ora il codice "ALPA" deve farmi aprire una finestra indipendente su cui poi
riversare il contenuto della pagina html che andrò a inserire tramite php.
La finestra verrebbe aperta usando window.open in javascript, ma il problema
adesso è proprio questo.
E cioè se io faccio un echo con il codice javascript, questo non viene
eseguito e ciò per via del fatto che manca l'evento che lo esegue.
Come posso rimediare? Premetto che facendo il tutto lato client il problema
non si poneva.
Grazie in anticipo a chi mi risponde.
Cooper.
-- 
BlueWare Web Agency
   [web] 
http://www.blueware.it
   [icq] 146781935

 Come posso rimediare? 
Usando print?
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.


Ho provato sia con print che con echo, e mi stampa solo il codice nella
pagina html senza eseguitlo.


 nella pagina html senza eseguitlo.
Fai il print del codice JS che richiama la tua funzione JS che deve
essere eseguita.



Mmm la funzione vera e propria viene caricata in header in quanto si trova
già di per se in un file .js a parte.
Nel print ho scritto qualcosa del tipo:
print "<script type=\"text/javascript\">miafunction()</script>";
ma non la esegue... mi puoi dare delle indicazioni piu precise?
Grazie ancora, Cooper.


 ma non la esegue... 
Sei sicuro che il print venga effettuato correttamente? Se sostituisci
a miafunction() un alert questo viene visualizzato?



Allora se scrivo:
           print "<script
type=\"text/javascript\">alert('prova');</script>";
funziona correttamente, ma se scrivo:
           print "<script
type=\"text/javascript\">MM_openBrWindow('','win','width=765,height=492,resi
zable=no');</script>";
non mi funziona.
Premetto che la funzione MM_openBrWindow viene richiamata da questa riga:
 <script language="javascript" type="text/javascript"
src="./source/jslib.js"></script>
inclusa in <head> ... </head> e nel file jslib.js è cosi definita:
 function MM_openBrWindow(theURL,winName,features) { //v2.0
    window.open(theURL,winName,features);
  }
Non capisco dove sbaglio.
Cooper.
<script
type="text/javascript">MM_openBrWindow('','chat','width=765,height=492,resiz
able=no');</script>


Non capisco dove sbaglio.
Mi sembra che il pop up venga aperto in automatico dalla pagina senza
un intervento dell'utente (click su url, button o altro), giusto?
Hai installato un pop up killer o usi un browser che lo gestisce in
automatico? Prova a disabilitarlo.
'bye

 ha scritto nel
messaggio news:bq4kb05rjc7bdkmng...@4ax.com...

In effetti hai ragione, lo interpretra come popup e lo blocca e questo
spiega tutto. Il problema allora devo porlo in modo diverso, e cioč, non
voglio che venga interpretrato come popup (infatti non lo č) in quanto
dovrebbe aprirsi questa finestra indipendente solo dopo che l'utente clicca
ok dal form.
Il punto č che viene fatta la validazione dei campi prima dell'apertura lato
server e quindi solo quando non trova errori (lato server) nei campi
dovrebbe far aprire questa finestra.
Suggerimenti?
Cooper.


 l'utente clicca ok dal form.
Ora mi chiedo come fai a scrivere che realizzi "Siti Internet
Professionali su misura misura e in base alle esigenze e alle necessita
del Cliente" e non conosci nemmeno le basi dell'HTML?
Sai che cosa e' l'attributo target del tag form?
Se non lo sai forse e' il caso che invece di sviluppare "Siti Internet
Professionali" inizia a studiare l'HTML.


"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:g5ruc.81560$Qc.32...@twister1.libero.it...
Setec se arrivi a pensare cose che non sono, è chiaro che hai inteso male
quello che ho scritto, ok appuriamo che mi sia espresso male io..., provo a
rispiegare ancora una volta meglio la mia situazione....
Nel file HTML di nome:    HOME.HTML ho il form cosi definito:
 <form name="form1" method="post" action="home.php" target="win">
  ........
  ........  i vari campi
  ........
  <input type="submit" name="submit" value="Conferma!">
</form>
il file HOME.HTML è un template (con estensione HTML, ok potevo chiamarlo
TPL etc, ma qui in questo caso ho dato l'estensione HTML) e viene richiamato
dal file in PHP di nome: HOME.PHP.
In HOME.PHP leggo i vari campi usando $_POST ed effettuo la validazione,
quindi assegno il risultato finale in una variabile booleana $error (la
quale conterrà TRUE se rileva degli errori, FALSE in caso contrario) quindi
segue un blocco del tipo:
if ($error) {
  // esegue il blocco di codice che visualizza l'errore
} else {
 // esegue il blocco di codice che apre la finestra indipendente
}
Nel blocco di codice che apre la finestra indipendente ho scritto la riga:
           print "<script
type=\"text/javascript\">MM_openBrWindow('mypage.html','win','width=765,heig
ht=492,resizable=no');</script>";
ora la finestra si apre, disattivando i popup (non la visualizzavo perchè
avevo il blocco popup attivo).
Il problema è che, se la riga (del print) la inserisco come evento onclick
sul SUBMIT del form è precisamente in questo modo:
                                 <input type="submit" name="submit"
value="Conferma!"   onClick=" if ( analisys() ) {
MM_openBrWindow('','win','width=765,height=492,resizable=no'); }">
dove "analisys()" è la funzione che effettua la validazione lato client in
javascript, è tutto ok, mi apre infatti correttamente la finestra
indipendente e non la vede come "popup" nel senso che non viene bloccata dal
browser.
Se invece provo a fare la validazione lato server (in PHP) quando esegue la
riga (del print) il browser la interpreta come "popup" e la blocca.
Quello che vorrei appunto è che non venisse bloccata, proprio come nel caso
precedente. Tutto qui.
Spero che cosi adesso il mio problema sia più chiaro. Rimango in attesa di
riscontri... e grazie ancora per la pazienza.
