Php-mysql-jquery

  • Creatore Discussione Creatore Discussione giusy86
  • Data di inizio Data di inizio

giusy86

Nuovo Utente
7 Mar 2013
4
0
0
Ciao a tutti, sono nuova in questo forum e mi sto avvicinando alla programmazione web. Sto realizzando una semplice pagina html che permetta di inserire un nuovo annuncio attraverso la compilazione di una form. La pagina l'ho scritta con HTML. La convalida dei campi l'ho fatta con JQUERY. Poi a parte ho scritto una classe in php che mi permetta di fare la connessione ad db e inserire un nuovo record. Separatamente tutto funziona ma quando cerca di mettere tutto insieme, non riesco ad aggiungere il record alla base di dati. Vi posto il mio esempio:

Il seguente è lo script che ho inserito nella pagina html per la convalida dei dati:
HTML:
[SIZE=2]<script>
            jQuery(document).ready(function(){
                jQuery("#new-commento").validationEngine('attach', {
                    onValidationComplete: function(form, status) {
                        if (status == true) {
                            var nickname = jQuery("#nickname").val();
                            var email = jQuery('#mail').val();
                            var tel = jQuery('#tel').val();
                            var commento = jQuery('#commento').val();
                            $.post(
                                './index.php',
                                {
                                    "nickname" : nickname,
                                    "email" : email,
                                    "tel" : tel,
                                    "commento" : commento
                                },
                                function(response) {}
                            );
                        } else {
                            alert('KO');
                        }
                    }
                });
            });
           
        
        </script> [/SIZE]


Il seguente è lo script php per salvarmi il valore dei campi e quindi richiama la classe php per fare l'inserimento nel db:


PHP:
<?php
    include "funzioniMySql.php";
    
    if(isset($_POST["nickname"]) && isset($_POST["mail"]) && isset($_POST["tel"]) && isset($_POST["commento"])) {
        $nickname = $_POST["nickname"];
        $mail = $_POST["mail"];
        $tel = $_POST["tel"];
        $commento = $_POST["commento"];
        $data = new FunzioneSQL();
        $data->connetti("localhost","root", "root", "inserzioni");
        $data->inserisci("commento", $nickname, $mail, $tel, $commento);
    } else {
        echo "ERROR";
    }
 ?>
Grazie per il vostro aiuto!
 
Quali errori ti vengono fuori? Solo la non riuscita esecuzione della query? Hai provato a simularne una dal phpmyadmin, ed è andata a buon fine? Oppure non invia la chiamata in ajax?

Inoltre noto che nella chiamata in ajax non hai implementato la funzione col testo di risposta per valutare se sia andata a buon fine o meno.
 
Quali errori ti vengono fuori? Solo la non riuscita esecuzione della query? Hai provato a simularne una dal phpmyadmin, ed è andata a buon fine? Oppure non invia la chiamata in ajax?

Inoltre noto che nella chiamata in ajax non hai implementato la funzione col testo di risposta per valutare se sia andata a buon fine o meno.



Allora ho provato a fare questa cosa:

Ho modificato lo script php in questo modo:

PHP:
<?php

     $conn = mysql_connect('localhost', 'root', 'root');
     $db   = mysql_select_db('inserzioni');
     if(mysql_query("INSERT INTO commento VALUES('giusy', 'g@alice.it', '098', 'nuovo commnetooooooooooooo')"))
        echo "OK";
    else
	echo "KO";

e ho aperto la pagina html da phpmyadmin (http://127.0.0.1/siti/index.html) e l'inserimento avviene correttamente.

Poi ho provato ad usare lo script php del post precedente e ho aperto la pagina html sempre con phpmyadmin e mi da l'errore sulla riga di codice:

if(isset($_POST["nickname"]) && isset($_POST["mail"]) && isset($_POST["tel"]) && isset($_POST["commento"]))


Se infine apro la pagina html dal browser normalmente (cioè senza phpmyadmin) allora non funziona né in un modo né nell'altro.

Purtroppo è la prima volta che faccio questo tipo di cose ... quindi non sono per niente pratica!!! :( Ti ringrazio per il tuo aiuto!
 
Quale errore ti da a quella linea?

Con isset, puoi elencare direttamente tutte le variabili che devono essere settate
PHP:
if(isset($_POST["nickname"],$_POST["mail"],$_POST["tel"],$_POST["commento"])){ //...

se non sei sicura che quelle variabili vengano spedite fai un var_dump($_POST) e vedi il response di jquery
Codice:
function(response) {
   alert(response);
}

Se sono inviate correttamente allora il problema forse è nella classe per le funzioni sql che hai fatto

ps: passa a mysqli o pdo in futuro
 
Quale errore ti da a quella linea?

Con isset, puoi elencare direttamente tutte le variabili che devono essere settate
PHP:
if(isset($_POST["nickname"],$_POST["mail"],$_POST["tel"],$_POST["commento"])){ //...

se non sei sicura che quelle variabili vengano spedite fai un var_dump($_POST) e vedi il response di jquery
Codice:
function(response) {
   alert(response);
}

Se sono inviate correttamente allora il problema forse è nella classe per le funzioni sql che hai fatto

ps: passa a mysqli o pdo in futuro



Io credo che il mio problema sia dovuto al fatto che ho troppe poche conoscenze riguardo a Php :( ..... Forse potrei ora postare qualcosa la cui risposta sarà: "Prova a leggere un tutorial PHP prima di postare sul forum" e avete tutte le ragioni per dirmi così!!!!In ogni caso voglio provarci ;)

Allora ho lo script php salvato in un file "index.php":

PHP:
<?php
    include "funzioniMySql.php";
    
    if(isset($_POST["nickname"]) && isset($_POST["mail"]) && isset($_POST["tel"]) && isset($_POST["commento"])) {
        $nickname = $_POST["nickname"];
        $mail = $_POST["mail"];
        $tel = $_POST["tel"];
        $commento = $_POST["commento"];
        $variabile_php = "OK";
        echo "OK";
    } else {
        $variabile_php = "ERROR";
        echo "ERROR";
    }
?>

Poi ho la pagina HTML con questo script:

HTML:
<script>
            jQuery(document).ready(function(){
                jQuery("#new-commento").validationEngine('attach', {
                    onValidationComplete: function(form, status) {
                        if (status == true) {
                            var nickname = jQuery("#nickname").val();
                            var email = jQuery('#mail').val();
                            var tel = jQuery('#tel').val();
                            var commento = jQuery('#commento').val();
                            $.post(
                                './index.php', { "nickname" : nickname, "email" : email, "tel" : tel, "commento" : commento },
                                function(response) {
                                    //$("#result").html(response);
                                    //alert(response);
                                    var variabile = "<?php echo($variabile_php); ?>";
                                    alert("Variabile ---->>" + variabile);
                                }
                            );
                        } else {
                            alert('KO');
                        }
                    }
                });
            });
        </script>

Ora la mia domanda prima di tutto è: come faccio a stampare il valore di una variabile nella pagina html preso dallo script php? Se stampo il valore di response ottengo: "obj XMLDocument". Se capisco questa cosa, posso vedere cosa succede nello script php e individuare anche l'errore.

Vi ringrazio e scusatemi per la mia "incompetenza"!!!!!
 
Prova inserendo il dataType come testo

Codice:
 $.post(
   './index.php', { "nickname" : nickname, "email" : email, "tel" : tel, "commento" : commento },
                                function(response) {
                                   $("#result").html(response);
                                },  'text'
         );
 
Prova inserendo il dataType come testo

Codice:
 $.post(
   './index.php', { "nickname" : nickname, "email" : email, "tel" : tel, "commento" : commento },
                                function(response) {
                                   $("#result").html(response);
                                },  'text'
         );




Non va bene, mi stampa tutto lo script!!!Credo che sia il caso di darmi una lettura a qualche tutorial base per php altrimenti non ne esco più fuori!!!! Ti ringrazio per la tua disponibilità ......... posterò cmq la soluzione corretta!!!!!! :rolleyes:
 
Non va bene, mi stampa tutto lo script!!!Credo che sia il caso di darmi una lettura a qualche tutorial base per php altrimenti non ne esco più fuori!!!! Ti ringrazio per la tua disponibilità ......... posterò cmq la soluzione corretta!!!!!! :rolleyes:
Okey, prova eventualmente cambiando il dataType da text ad html (se ho capito cosa intendi)
 

Discussioni simili