Ancora un problema con jquery e $.ajax

Summerwind78
Ciao a tutti

voglio mandare dei comandi e dei parametri via POST usando jquery


per farlo uso questo codice

$.ajax({
                    type: "POST",
                    url: "../phplib/scriptcommand.php",
                    data: {
                        comando: "inviaOrari",
                        apriMat: $("#txtAperturaMattino").val(),
                        chiudiMat: $("#txtChiusuraMattino").val(),
                        apriPom: $("#txtAperturaPomeriggio").val(),
                        chiudiPom: $("#txtChiusuraPomeriggio").val()
                    },
                    async: false,
                    contentType: "charset=utf-8",
                    dataType: "text",
                    success: function(response) {
                        response = response.trim().toLowerCase();
                        if (response === 'ok') {
                            $.msgBox({
                                content: "Orario salvato correttamente",
                                type: "info",
                                opacity: 0.7
                            });
                        } else {


                            var result = response.replace("ko_", "");
                            switch (result) {

                                case "aprimat":
                                    myObj = "#txtAperturaMattino";
                                    break;
                                case "chiudimat":
                                    myObj = "#txtChiusuraMattino";
                                    break;
                                case "apripom":
                                    myObj = "#txtAperturaPomeriggio";
                                    break;
                                case "chiudipom":
                                    myObj = "#txtChiusuraPomeriggio";
                                    break;
                            }

                            $.msgBox({
                                content: "Formato ora non valido",
                                type: "alert",
                                opacity: 0.7,
                                afterClose: function() {
                                    if (myObj !== "") {
                                        $(myObj).focus();
                                        $(myObj).select();
                                    }
                                }
                            });
                        }
                    },
                    error: function(request, status, error) {
                        alert(error);
                    }
                });



il problema é che quando viene chiamata la pagina php che risponde al comando, l'array $_POST é vuoto.

tutto funziona bene se imposto
type: "GET",



qualcuno saprebbe spiegarmi il motivo?


grazie

Risposte
anonymous_be1147
Ciao, già provato aggiungendo
application/x-www-form-urlencoded;
alla stringa
contentType
, in modo che sia

application/x-www-form-urlencoded; charset=UTF-8

:?:

[ot]No, non sto usando Linux! :P[/ot]

Summerwind78
Grazie!!!

con il tuo suggerimento funziona benissimo


mi puoi spiegare meglio a che cosa serve i parametro che mi hai suggerito?

anonymous_be1147
Be', è un valore possibile per il parametro
contentType
, che specifica il tipo MIME del messaggio inviato, mentre
charset=UTF-8
specifica la codifica usata per lo stesso.

Summerwind78
e qui diventa palese la mia ignoranza :D

anonymous_be1147
Be', non che io ne sappia molto di più... :) Comunque, detto in parole semplici, quando tu invii qualcosa a qualcuno oppure la ricevi, è utile sapere di che si tratta preventivamente per poterla usare/interpretare in modo corretto. Per esempio, immagina che qualcuno ti invii un DVD senza alcun riferimento al tipo di supporto e/o contenuto (niente etichette, etc); in questo caso potresti erroneamente provare a scrivere su un DVD a sola lettura, a usarlo in un lettore che non ne supporta il formato, tipo tentare di visualizzarne il contenuto, quando in realtà si tratta di file audio, oppure dati di altro tipo non multimediale o fare altre operazioni ancor più rischiose. Mentre se sul supporto c'è stampato a chiare lettere di che si tratta, non rischi di fare niente di dannoso/pericoloso. Spero di aver chiarito il concetto... :oops:

Summerwind78
si grazie...

diciamo che il concetto come lo hai espresso tu mi era già chiaro :D

io intendevo una spiegazione più specifica, ma mi documento

grazie mille

anonymous_be1147
Ah, ecco, infatti mi pareva strano. Comunque, nel link postato in precedenza, c'è una prima spiegazione tecnica di che si tratta in dettaglio (cerca la stringa application/x-www-form-urlencoded). :)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.