Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    eseguire un redirect dopo una funzione

    Buonasera

    ho un problema con il redirect dopo una funzione
    codice:
    function salva(){
    var salva="salva";
    
    /* recupero il valore dei radio */
    var priorita="";
    var check1= document.getElementById("alta");
    var check2 = document.getElementById("normale");
    var check3 = document.getElementById("bassa");
    if(check1.checked){priorita=1}
    if(check2.checked){priorita=2}
    if(check3.checked){priorita=3}
    
    var nome=document.getElementById("nome").value;
    var lavoro=document.getElementById("lavoro").value;
    var ora=document.getElementById("ora").value;
    var data=document.getElementById("data").value;
    
        var xmlhttp;
          xmlhttp=new XMLHttpRequest();
    
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById("aggiungiAppuntamento").innerHTML=xmlhttp.responseText;
            }
          }
        xmlhttp.open("POST","app/agenda/aggiungiAppuntamento.php",true);
        xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xmlhttp.setRequestHeader("Connection", "close");
    
        xmlhttp.send("salva="+salva+"&nome="+nome+"&lavoro="+lavoro+"&priorita="+priorita+"&data="+data+"&ora="+ora);
        
    //redirect
    //window.location=window.location.href;
    setInterval(function() {window.location=window.location.href},200);
    }
    questa funzione la utilizzo per prendere i dati da un form e mandarli alla pagina php per aggiungere un appuntamento,in locale non ci sono problemi utilizzando "window.location=window.location.href",
    ma una volta caricato sul web non riesce ad eseguire la parte php e mi aggiorna la pagina senza aggiungere l'appuntamento
    sono costretto ad utilizzare il setInterval per far funzionare tutte le funzioni del sito

    é un problema di come ho scritto il codice?
    questa é la pagina che richiama:
    codice:
    <?php
    define('ABS_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . '/');
    $abs_path= str_replace("app/agenda/", "", ABS_PATH);
    
        include_once($abs_path."config/dbconfig.php");
        include_once($abs_path."config/security.php");
        include_once($abs_path."config/common.php");
    
        $db = new DBConnection();
        $db->getConnection();
        
        $id_account=escape_input($_SESSION['id']);
    
        $dataOdierna=time();
        
        
        
        
    if(isset($_POST['form'])){
    $ora=$_POST['ora'];
    $data=$_POST['data'];
    
    echo"
    <input type='hidden' name='data' id='data' value='".$data."' />
    <input type='hidden' name='ora' id='ora' value='".$ora."' />
    
    <input type='button' name='annulla' id='annulla' value='X' onClick='annullaAggiungiCliente()'/>
        <table>
            <caption><strong>aggiungi appuntamento</strong></caption>
            <tbody>
                <tr>
                    <td>
                        nome :
                    </td>
                    <td>
                        servizio :
                    </td>
                </tr>
                <tr>
                    <td>
                        <input type='text' id='nome' autofocus required> 
                    </td>
                    <td>
                         <input type='text' id='lavoro' required>  
                    </td>
                </tr>
                <tr>
                    <td align='center'>
                        prioritá : 
                    </td>
                    <td>
                        <input type='radio' name='priorita' id='alta' value='1' /> alta</br>
                        <input type='radio' name='priorita' id='normale' value='2' checked='checked' /> normale</br>
                        <input type='radio' name='priorita' id='bassa' value='3' /> bassa</br>
                    </td>
                </tr>
                <tr>
                    <td align='center' colspan='2'>
                        <input type='button' id='salva' value='salva'  onClick='salva()'/>
                    </td>
                </tr>
            </tbody>
        </table>
    ";
    
    }
    
    if(isset($_POST['salva'])){
    global $dataOdierna;
    global $id_account;
    $nome=$_POST['nome'];
    $lavoro=$_POST['lavoro'];
    $priorita=$_POST['priorita'];
    $data=$_POST['data'];// timestamp
    $data=date("j/n/Y",$data);// data normale
    $ora=$_POST['ora'];
    
    echo $priorita;
    $query = "INSERT INTO agenda  (id_account, 
                                            nome,
                                            lavoro, 
                                            priorita, 
                                            data, 
                                            ora, 
                                            data_aggiunta)
                                    VALUES ('$id_account', 
                                            '$nome', 
                                            '$lavoro', 
                                            '$priorita', 
                                            '$data', 
                                            '$ora', 
                                            '$dataOdierna')";
            $handle = mysql_query($query );
            
            
    }
    
    ?>
    grazie per l'attenzione

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Sei sicuro di operare secondo le specifiche del linguaggio dando a millemila oggetti della tua pagina il nome "salva" ?


    ps: questo e' il forum javascript: se posti codice PHP non aspettarti che qualcuno lo capisca e sappia cosa potrebbe diventare una volta eseguito dal server. (io per esempio non ne ho idea)
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Scusa ma che senso ha aggiungere un dato in ajax (che ha come prerogativa non ricaricare la pagina stessa) e ad inserimento eseguito ricaricare la pagina, come logica invio form > inserimento > rimando al form senza scomodare ajax



    P.S. Comunque meglio non chiudere la connessione xmlhttp.setRequestHeader("Connection","close"); alcuni browser (vedi IE) non lo digeriscono, ma non è detto che sia questo il problema, molto più probabile che sia come dice Bruno che cambiando nomi salva pulsante/variabile/funzione mi sembrano un po troppi (un po di fantasia non guasta).

    P.S.S. E togli quel inteval che non si può guardare al responseText fai il reload
    Ultima modifica di cavicchiandrea; 23-06-2014 a 21:58
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    si o almeno in locale non da alcun problema,il mistero é il redirect di javascript,per questo ho postato qui

    si tratta di un'agenda e volevo che dopo l'aggiunta dell'appuntamento si potesse visualizzare automaticamente la pagina aggiornata
    Ultima modifica di antorebel; 23-06-2014 a 22:05

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da antorebel Visualizza il messaggio
    si o almeno in locale non da alcun problema,il mistero é il redirect di javascript,per questo ho postato qui
    Ma c'è un motivo valido del utilizzo di ajax per questa operazione?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    effettivamente ora che me lo fai notare non c'é un motivo valido in questo caso

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.