Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Aprire un modal box di jquery-ui in base ad un valore di errore

    dunque...in una pagina ho definito come al solito un modal box:

    codice:
    <script type="text/javascript">
        $(document).ready(function() {
          $('#dialog').dialog({
            autoOpen: false,
            height: 280,
            modal: true,
            resizable: false,
            buttons: {
              OK: function() { $(this).dialog('close'); }
            }
          });
      </script>
    io vorrei che il modal box si aprisse in base ad esempio ad una condizione di errore, tipo "query errata", per cui ho scritto una funzione PHP come la seguente:

    Codice PHP:
    $mysqli = new mysqli($this->host$this->user$this->pass$this->data);
    if (
    $mysqli) {

    } else
        echo 
    $this->warning("Errore di connessione al database!");
    ....
    public function 
    warning($text) {
      
    $dialog '<div id="dialog" title="WARNING">

    $text "</p></div>";
      
    $dialog .= '<script type="text/javascript">$("#dialog").dialog('open');</script>';
      return 
    $dialog;

    ma purtroppo non funziona!!! come risolvere il problema?

  2. #2
    Ajax

    oppure

    var errore = '<?php echo /* errore */ ?>

    setTimeout(function()
    {
    switch(errore)
    {

    }
    }, 2000);

    ma mi sembra una por#ata

  3. #3
    grazie per la risposta, ho tentato qualcosa del genere ma nisba..pensavo...si potrebbe simulare un evento click con la funzione trigger() ?

  4. #4
    come sopra, nella sezione HEAD della pagina ho provato così:

    codice:
    <script type="text/javascript">
      $(document).ready(function() {
        $('#dialog').dialog({
            autoOpen: false,
            height: 280,
            modal: true,
            resizable: false,
            buttons: {
              OK: function() {
                $(this).dialog('close');
              }
            }
          });
          $("#dialog").click( function() { $(this).dialog("open"); });
    	});
      </script>
    e la funzione PHP ora è così:

    Codice PHP:
    public function message($text$val=0$page='') {
          
    $script "<div id=\"dialog\" title=\"warning\">" $text "</div>";
          
    $script .= "<script type=\"text/javascript\">$('#dialog').trigger('click')";
          
    $script .= "</script>";
          return 
    $script;
        } 
    cioè in pratica pensavo che così facendo con TRIGGER avrei simulato l'evento CLICK per visualzizare il box..ma ancora non succede nulla....

  5. #5
    ma non puoi aprre il messaggio da una funzione?? copiati l'html e apri il box...

  6. #6
    potrei si ma dovrei ricaricare la pagina ed è una perdita di tempo, ad ogni modo il box si può aprire di solito tramite un evento come click su un pulsante o un link con jquery, quindi prima di visualizzare il box dovrei pure creare un evento click! per questo pensavo di simulare l'evento...

  7. #7
    Tu devi visualizzare sto benedetto box al di fuori del click..

  8. #8
    come? se ad esempio tolgo il parametro autoOpen si apre subito senza alcun controllo...io invece voglio che il box si apra solo se ad esempio deve visualizzare un messaggio di errore...

  9. #9
    allora non so come funzioni sto controllo cmq


    function apri_mex()
    {
    $('#dialog').dialog({
    autoOpen: true,
    height: 280,
    modal: true,
    resizable: false,
    buttons: {
    OK: function() {
    $(this).dialog('close');
    }
    }
    });
    }

    apri_mex();

    hai capito?

  10. #10
    più o meno è quel che vorrei, ma apri_mex deve essere eseguito solo se c'è un messaggio da visualizzare. e nel mio caso non è molto semplice! tanto per capire nella funzione PHP seguente

    Codice PHP:
    public function returnID($sql$mode=1) {
          
    $mysqli = new mysqli($this->host$this->user$this->pass$this->data);
          if (
    $mysqli) {
            
    $mysqli->query($sql);
          
    i  $recordID $mysqli->insert_id;
          } else
              echo 
    $this->message('[b]DB Connect Error: ' $mysqli->connect_errno '[/b]
    Error: ' 
    $mysqli->connect_error);
          
    $mysqli->close();
          return 
    $recordID;
        } 
    vedi che chiama MESSAGE per visualizzare il modal box. per farlo come dici tu dovrei ricaricare la pagina e passare ad apri_mex qualcosa come
    Codice PHP:
    apri_mex(<?=$_REQUEST['message']?>)
    il che mi sembra inutile dato che sarebbe lo stesso di come premere il SUBMIT di un form che passa i dati al server. Con quello che intendo fare io non ricarico nulla e visualizzo subito il messaggio. Capito?

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.