Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problemino con jquery

  1. #1

    problemino con jquery

    ho creato in una mia webapp delle modal dialog window con jquery-ui per avvisare se ad esempio è stato commesso un errore di battitura. Una volta premuto il pulsante OK della window essa si chiuda ed esegua una istruzione javascript, tipo location.href o history.go(-1). Ma il codice che ho fatto non funziona, non visualizza la modal window ed esegue subito l'istruzione javascript! come mai? ecco il codice che ho usato (da notare che ho messo il tutto in una classe PHP):

    Codice PHP:
    public function message($text$val=0$page='')  {
      
    $dialog "<script type=\"text/javascript\">
                        $(function() {
                          $( \"#dialog\" ).dialog({
                            modal: true,
                            resizable: false,
                            buttons: {
                              OK: function() {
                                $(this).dialog('close');
                              }
                          }); 
                        });"
    ;
      
    $dialog .= "<div id=\"dialog\" title=\"WARNING\">

    $text "</p></div>";
      if (
    $val == 1$dialog .= " history.back();";
      if (
    $val == 2$dialog .= " location.href = '" $page "';";
      if (
    $val == 3$dialog .= " location.href = './\\';";
      return 
    $dialog '</script>' ;
    }

    echo 
    $class->message("email non inserita!"1); 
    nell'esempio sopra riportato invece di apparire la modal window viene eseguita l'istruzione javascript seguente (in questo caso history.back())

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A) Ma togliendo la classe php lo script dialog funzionerebbe?
    B) Conosci la differenza tra linguaggi server (php) è linguaggio client (javascript)? (quando il primo lavora il secondo non esiste e quando il secondo lavora il primo a già finito )
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    certo che conosco bene la differenza! PHP lavora sul server, Javascript solo sul browser utente..dovresti anche tu sapere cmq che una stringa PHP che contiene tag HTML viene vista esattamente come una aggiunta alla pagina stessa e trattata conseguentemente..l'ho fatto decine di volte...la stringa dell'esempio ($dialog) viene vista esattamente come uno script normalissimo; se ad esempio nell'esempio che ho riportato togli la seconda parte dello script (history o location.href) e lasci la parte jquery, la window viene mostrata correttamente! perciò mi domando perchè viene eseguita la seconda parte dello script senza mostrare la modal window.

  4. #4
    beh son riuscito a risolvere il problema! lo mostro tanto se interessasse a qualcuno...la funzione message deve essere così modificata:

    Codice PHP:
    public function message($text$val=0$page='') {
      if (
    $val == 1$event .= "history.back();";
      if (
    $val == 2$event .= "location.href = '" $page "';";
      if (
    $val == 3$event .= "location.href = 'index.php';";
      
    $dialog '<script type="text/javascript">
                      $(function() {
                        $( "#dialog" ).dialog({
                          modal: true,
                          resizable: false,
                          buttons: { 
                            OK: function() {
                               $(this).dialog(\'close\');
                             }
                          }'
    ;
      if (
    $val)
        
    $dialog .= ", close: function( ) { " $event " } }); });</script>";
      else
        
    $dialog .= " }); });</script>";
      
    $dialog .= "<div id=\"dialog\" title=\"WARNING\">

    $text "</p></div>";
      return 
    $dialog;
    }

    echo 
    $class->message("email non inserita!"1); 
    tutto stava nel fatto che nella definizione della modal window dovevo aggiungere l'evento close che avviene quando chiudo la window; in quel caso allora aggiungo alla variabile $dialog l'istruzione javascript da eseguire definita nelle prime righe come $event altrimenti visualizzo solo la window.

  5. #5

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