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

    Liste Drag e drop con jquery in db

    Salve a tutti, ho creato una classifica editabile tramite il trascinamento delle posizioni in modo dinamico che al cambiamento di posizione viene aggiornato il database.
    Questa classifica è stata fatta utilizzando il componente jquery, ogni elemento della lista e di tipo menu_$id e genera un riultato seriale (lista degli id menu).

    Passando questo dato alla pagina php per inserire i dati nel db, questo li elabora ma li restituisce con un criterio non propriamente ordinato, spesso mi mette due numeri della stessa posizione, o al primo posto un risultato qualsiasi.
    Questo file viene chiamato in modo asincrono dalla pagina che permette di ordinare le liste, elabora la richiesta ed ordina i dati nel database
    Codice PHP:

    /* Connettiamoci al database */
    mysql_connect($DBhost,$DBuser,$DBpass) ...;

    $menu $_POST['menu'];
    for (
    $i 1$i count($menu); $i++) {
       
        
    $sqlquery "UPDATE `Class_commerciale` SET `pos`=$i WHERE `id`= $menu[$i]";
    mysql_query($sqlquery) or die(mysql_error());

    }
     
    mysql_close() 
    Questo è la variabile 'menu' tratta dalla pagina che contiene le liste :
    codice:
    serial = "menu[]=2&menu[]=3&menu[]=0&menu[]=1&menu[]=4&menu[]=5&menu[]=6&menu[]=7&menu[]=8&menu[]=9&menu[]=10&menu[]=11&menu[]=12&menu[]=13&menu[]=14&menu[]=15&menu[]=16&menu[]=17&menu[]=18&menu[]=19&menu[]=20"
    Dove sbaglio? Grazie in anticipo del vostro aiuto

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, non si vede come elabori "serial" per trasformalo in array ed usarlo nel for..
    Se corretta la conversione ad occhi pare che nell'UPDATE venga usata la chiave 1 come prima saltando la 0.
    Se $i nel ciclo e' l'inizio e se menu[] fosse un array con chiavi dinamiche la prima dovrebbe essere 0.

  3. #3
    ciao e grazie per la risposta, infatti se io assegno $i = 0 mi funziona tutto alla perfezione, ma la classifica dovrebbe partire dal primo posto non dallo zero
    Nel caso se vuoi posso postare lo script che elabora serial.


  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Se il problema è solo la chiave o valore che non coincide basta che a uno o alla altro sommi o sottrai di uno e dovrebbero coincidere

  5. #5
    Grazie, era quello il problema, ho risolto con questa modifica:

    for ($i = 0; $i < count($menu); $i++) {
    $poz = $i+1;

    $sqlquery = "UPDATE `Class_commerciale` SET `pos`=$i WHERE `id`= $menu[$i]";
    mysql_query($sqlquery) or die(mysql_error());


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.