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

    jQuery passare oggetto in ajax

    Ciao a tutti
    Ho creato un oggetto FormData:
    codice:
    var formData=new FormData();
    formData.append("id","0000");
    formData.append("nome","Mario");
    formData.append("cognome","Rossi");
    Ora vorrei passare questo oggetto ad una richiesta ajax abbreviata, mi spiego:
    codice:
    $.post("pagina.php", { data:formData }, function(response){
    ...
    });
    posso passarlo così?
    E come richiamo i dati in php?

    Grazie per l'aiuto.

  2. #2
    Ho provato anche nel modo classico:
    codice:
    $.ajax({
       url: "pagina.php",
       type: "POST",
       data: formData,
       success: function(response){
          if(response!=""){
             alert(response);
          }else{
             alert("successo");
          }
       },
       error: function(){
          ...
       }
    });
    il mio problema in questa situazione e che in success il parametro "response" della funzione non me lo da mai vuoto cioè anche se non c'è nulla me lo da come se ci fosse qualcosa.

  3. #3
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, se tutto correto il settaggio di formData lato PHP avrai tutti in $_POST, $_FILES o quello che comunque stai inviando con ajax.
    Devi però settare nella chiamata ajax la proprietà processData : false o verrà parsato e non ritornato a php quello che ti aspetti.

  4. #4
    Quote Originariamente inviata da techno Visualizza il messaggio
    Ho provato anche nel modo classico:
    codice:
    $.ajax({
       url: "pagina.php",
       type: "POST",
       data: formData,
       processData: false,
       success: function(response){
          if(response!=""){
             alert(response);
          }else{
             alert("successo");
          }
       },
       error: function(){
          ...
       }
    });
    Fatto ma ugualmente mi da quella noia.

  5. #5
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ma lato php che cosa fai? Hai testato la pagina php per i fatti suoi? Funziona?
    Se fai un console.log(response) che cosa logga?

  6. #6
    devo provare con console.log(response) la pagina php funziona benissimo fa tutto quello che deve fare solo che se la pagina php mi dia un errore mi viene restituito dentro a response altrimenti response deve essere vuoto.
    Ma se leggi lo script che ho postato con response ce una condizione se non è vuoto fai alert(response) altrimenti fai alert("successo").
    Il problema che anche se response è vuoto mi fa alert(response) che non dovrebbe farlo.

  7. #7
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Sei sicuro che sia vuoto? nella console nel tab netork vedi la risposta esatta. Magari c'è un qualche errore php/warning che ti sfugge.
    se fai un console.log di console.log(typeof response) cosa ritorna?

  8. #8
    Scrivo proprio cosi: console.log(typeof response);

    mi da questo (string)

    perche anche se io vede vuoto?

    Il file php è un semplice script per eliminare voci dal database:
    Codice PHP:
    require_once '../req/db.php';
    $db=new database;$db->connect();
    $id=trim($_GET["id"]);$table=trim($_GET["table"]);
    $sql="DELETE FROM $table WHERE ID='$id'";if(!$db->query($sql)) echo "Si è verificato un errore, si prega di riprovare.";unset($sql);
    $db->disconnect();unset($db); 
    Ultima modifica di techno; 16-11-2016 a 19:18

  9. #9
    e come se mi passasse una stringa vuota, ma per quale motivo visto che non gli passo nulla?

  10. #10
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Prova ad aggirare il problema a seconda di quello che vuoi fare.
    Se non va in errore fatti ritornare un valore del caso, ad esempio
    codice:
     echo 1;
    Se va in errore
    codice:
     echo 2;
    e coì via.

    Oppure
    codice:
    if(!$db->query($sql)){
     echo 2;
    }else{
     echo 1;
    }
    unset($sql);
    $db->disconnect();
    unset($db);  
    


    In questo modo puoi gestire la risposta più facilemente.

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.