Visualizzazione risultati 1 fino 4 di 4

Discussione: Inserire voto database

  1. #1
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Predefinito Inserire voto database

    Salve a tutti. Io, in pratica, genero il tasto "Vota" per ogni news che viene scritta. In queste news, quando clicco "vota", si dovrebbe mandare il tipo di news al database, ma senza aggiornare la pagina. Ho provato con questo codice che si trova nella pagina "home.php", ma senza risultato.

    Codice HTML:
    <td><input id="elimina" onclick="vota(); return false;" type='button' name="<?php echo $id_user; ?>" value='Vota' /></td>  <center> 
    
    <?php
                    $vota = addslashes($id_user);
    ?>
    function vota(){
    
    newss = document.getElementById(<?php $vota ?>).value;
    
    $.ajax({
    type: "POST",
    url: "/query/query_user_vota.php",
    data: newss, 
    });
    }
    </script>
    Dove sbaglio? E' giusta questa stringa?
    Codice HTML:
    newss = document.getElementById(<?php $vota ?>).value;
    La query che eseguo è questa
    Codice PHP:
    $vota = addslashes($id_user);
    mysql_query("INSERT INTO vota_profilo (news) VALUES ('$vota')") or die(mysql_error());
    e si trova nella directory /query. Purtroppo conosco solo php, css e html
    Ultima modifica di ysoolder : 04-08-2014 alle ore 10.20.36

  2. #2
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Predefinito

    Ad esempio, ora al database mi arriva un record vuoto dopo che ho modificato <style> in questo modo:

    Codice HTML:
                    <script type="text/javascript">
    
    function vota(){
    
    $.ajax({
    type: "POST",
    url: "/query/query_user_vota.php",
    			data: ({
    				news: <?php echo $id_user; ?>
    			}),
                
                });
                
    }
    </script>

    ma come mai non mi stampa la news, ma arriva vuoto il record?

  3. #3
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    il codice JS per prelevare il valore del Input è corretto .

    nel PHP per passare i dati dovresti usare mysqli_real_escape_string

    ... ma non hai postato tutto il codice AJAX o hai scritto solo quello ?

    ho creato un piccolo esempio
    dove si richiede di effettuare una votazione , si passa il valore ai file PHP che aggiorna il DB e si legge il risultato modificato con AJAX

    nel file iniziale ho inserito un form e lo script AJAX
    Codice HTML:
    <html>
    <body>
    <script language="javascript" type="text/javascript">
    
    function ajaxFunction(){
    var xmlhttp;
    if (window.XMLHttpRequest)
      {
      xmlhttp=new XMLHttpRequest();
      }
    else
      {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
       
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("risposta").innerHTML=xmlhttp.responseText;
        }
      }
    
     var voto = document.getElementById('voto').value;
     var ID = 1; /*  per provare imposto un ID , ma questo valore é ID della News che devi votare  */
    
     var queryString = "?vota=" + voto ;
     queryString +=  "&ID=" + ID;
     
     xmlhttp.open("GET","databaseop.php" + queryString,true); 
     xmlhttp.send();
    
    }
    </script>
    <form name='mioform'>
    Voto: <input type='text' id='voto' /> <br />
    <input type='button' onclick='ajaxFunction()' value='VOTA'/>
    </form>
    <div id='risposta'></div>
    </body>
    </html>
    nel file PHP invece leggo i dati inviati dal form , eseguo un ricerca del ID , estrapolo la votazione precedente e ci sommo quella attuale ; quindi eseguo UPDATE del DB e eseguo un echo del nuovo valore.

    Codice PHP:
    <?php
    $con
    =mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
    if (
    mysqli_connect_errno()) {
    echo
    "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $vota = mysqli_real_escape_string($con, $_GET['vota']);
    $id = mysqli_real_escape_string($con, $_GET['ID']);

    $ID = intval ( $id );
    $voto = intval ( $vota );


    $query = "SELECT * FROM `votazione` WHERE `ID`=$ID";

    $qry_result = mysqli_query($con,$query) or die(mysqli_error());


    while(
    $row = mysqli_fetch_array($qry_result)){
    $votoprec = "$row[vota]";
    }

    $voto = $voto + $votoprec;

    mysqli_query($con,"UPDATE votazione SET vota=$voto WHERE ID=$ID");

    $query = "SELECT * FROM `votazione` WHERE `ID`=$ID";

    $qry_result = mysqli_query($con,$query) or die(mysqli_error());

    while(
    $row = mysqli_fetch_array($qry_result)){
    $votoadesso = "$row[vota]";
    }

    echo
    $votoadesso;

    mysqli_close($con);
    ?>
    chiaramente il codice è minimale allo scopo di semplificarne la comprensione.

    P.S.

    L'utilizo di AJAX era stato già spiegato nelle guide in "How-To"
    Ultima modifica di NLSweb : 05-08-2014 alle ore 14.33.25

  4. #4
    ysoolder non è connesso Utente giovane
    Data registrazione
    06-04-2013
    Messaggi
    97

    Predefinito

    Grazie mille per la risposta. Correttissima

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •