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

    Bug con ciclo per generare stringa in JS - Help

    Salve a tutti. Vi chiedo in anticipo di scusarmi se non uso termini adeguati in alcuni punti o faccio alcuni errori formali, ma sto ancora imparando

    Il mio problema:

    Ho una funzione JavaScript che ha il compito di creare una lunga stringa che poi mi servirà da "esplodere" successivamente in un file PHP (che mi funziona perfettamente). Ho problemi con la generazione della stringa.

    La stringa contiene, uno via l'altro, separati da virgole e lineette (ma questo lo potete vedere dallo script), una serie di ID di div contenuti in alcuni box della pagina php da cui è richiamata.

    Questo stratagemma serve per leggere la condizione di alcuni box i cui elementi sono spostabili con un drag&drop (che mi funziona), per una successiva scrittura nel Database (che è a posto )

    Questo è il codice (scusate l'immagine ma non riuscivo ad usare il Code formattando a modo. Vi riscrivo il codice anche in fondo)




    Non riesco a trovare cosa non vada, ma in pratica quel che succede è che in fondo alla stringa, quando si dovrebbe chiudere, va ad appendersi un ulteriore id dell'ultimo elemento processato. In questo modo nella successiva pagina php quell'id innesca un ulteriore UPDATE mysql che va sempre a rimettere l'ultimo elemento nella terza colonna (ma questo è superfluo, in quanto conseguenza dell'errata scrittura della stringa).

    Spero di essere stato abbastanza chiaro, e soprattutto che qualche anima pia. Sappia aiutarmi perché mi serve per una esercitazione il prossimo mercoledì.
    Grazie in anticipo a chi potrà aiutarmi!!!


    Ecco il codice:

    // Funzione di scrittura della stringa che passa a save.php

    function getItemContainerList(){
    var ItemContList = '';
    var nodeColl = document.getElementsByTagName('div');
    for(var i=0; i<nodeColl.length; i++){

    if(nodeColl[i].className=='DragBox')
    { var nodeCont = '';
    nodeCont = nodeColl[i].parentNode;
    ItemContList = ItemContList+nodeCont.id+'-'+nodeColl[i].id;
    var virgola= i+1;
    if(virgola<nodeColl.length){ItemContList = ItemContList+',';}
    }
    }

    return ItemContList;
    }

    // Funzione da chiamare con il form save

    function save_byForm()
    {
    document.myForm.elements['saveString'].value = getItemContainerList();
    document.myForm.submit();
    }

  2. #2
    for(var i=0; i<nodeColl.length-1; i++){

    length contiene il numero di elementi dell'array, se parti da zero devi fermarti a ".length-1"

    Auguri per i sito

  3. #3
    Grazie, mille!
    Immaginavo che fosse una roba del genere, che quando poi la vedi è banale, ma prima di trovarla ti scervelli su mille cose!

    Sei stato preziosissimo, grazie di nuovo!

  4. #4

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 © 2024 vBulletin Solutions, Inc. All rights reserved.