Toon posts:

[javascript] values van input velden aanpassen in de code

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo mensen,

Ik heb een probleem, ik ben normaal van php, maar ik maak een soort validatie script dat aan de hand van javascript een id veld verhoogt of verlaagt. om te zorgen dat een rij met een ander id in de database komt te zitten zodat het er weer op een andere volgorde uit komt. nu doe ik dat aan de hand van een up en een down knopje. Dus als het id veld met value 2 omhoog moet dan wordt de value 1, en de value van het veld met 1 wordt twee.

So far so good, nu merk ik dat de value niet in de code wordt aan gepast, dus ik kan niet op value zoeken. ik had dit scriptje geschreven en ik vroeg mij af of jullie een andere manier konden bedenken om dit te doen want ik ben na heelveel javascript trial en error inspiratie loos.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function up(ind,total)  {
    
    for(var i=0;i<total;i++)    {
        var lbl = 'id_' + i;
        if(document.getElementById(lbl).value == ind)   {
            var vak_zelf = lbl;
            for(var x=0;x<total;x++)    {
                var vak_omhoog = 'id_' + x;
                if(parseInt(document.getElementById(vak_omhoog).value) == parseInt(document.getElementById(vak_zelf).value) -1) {
                    document.getElementById(vak_zelf).value = parseInt(document.getElementById(vak_zelf).value) -1;
                    document.getElementById(vak_omhoog).value = parseInt(document.getElementById(vak_omhoog).value) +1;
                }
            }
        break;
        }
    }
}

  • André
  • Registratie: Maart 2002
  • Laatst online: 11-02 14:19

André

Analytics dude

Heb je ook een voorbeeld online staan, zodat we daar in mee kunnen kijken?

Verwijderd

Topicstarter
Haha, ik zal eens kijken, een van mn andere recente problemen is dat ik php/mysql niet lekker aan de praat krijg op mn iis 6.0 bak..

en mn eigen pc(met server) staat uit ehmm... ik kijk even momentje bitte

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Kun je de volgende keer je bericht editen als je wat toe te voegen hebt en zelf de laatste poster bent? Dat staat wat minder slordig. ;)

Verder: Waar hoort mijn topic? Je topic hoort in Webdesign, Markup & Clientside Scripting, niet hier. :)

PRG>>WEB

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Mijn oprechte excuses,

Ik probeer dr altijd wel op te letten maar het lijkt altijd wel niet helemaal correct te gaan :S deregulering !! geintje..

Iemand wel suggesties na het posten van het vb

  • user109731
  • Registratie: Maart 2004
  • Niet online
Ik weet niet zeker of ik je vraag goed snap, maar je wilt dus dat het artikelnummer enzo ook meeveranderen? Je kunt dat op dezelfde manier doen als je met je IDs doet.

Geef je artikelnummer velden een uniek id, dus zoiets:
HTML:
1
2
3
<input  class="button" type="text" value="v920651" id="ArtikelNr0">
<input  class="button" type="text" value="000450" id="ArtikelNr1">
<input  class="button" type="text" value="v112201" id="ArtikelNr2">

Die class="button" is trouwens best verwarrend... Maar goed, verander je functie naar zoiets:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function swapElementValues(element1, element2) {
    var tempValue = element1.value;
    element1.value = element2.value;
    element2.value = tempValue;
}
function moveUp(id) {
  if (id <= 0) return; // bovenste element kan niet nog hoger
  var ditArtikelNr = document.getElementById("ArtikelNr"+id);
  var vorigArtikelNr = document.getElementById("ArtikelNr"+(id-1));
  swapElementValues(ditArtikelNr, vorigArtikelNr); // wissel dit en vorige artikelnr om

  var ditId = document.getElementById("id_"+id);
  var vorigId = document.getElementById("id_"+(id-1));  
  swapElementValues(ditId, vorigId); // wissel dit en vorige id om
}

En je up-linkjes naar zoiets:
HTML:
1
2
<a href="#" onclick="moveUp(0);">
<a href="#" onclick="moveUp(1);">

enz.

Dat zou moeten werken. De moveDown functie kun je vast zelf wel maken, die verschilt maar heel weinig. Note dat ik dit niet goed getest heb, dus er kan ergens een klein foutje inzitten.
Maar nogmaals, ik snap je vraag misschien niet goed. Wat wil je precies bereiken? De value word toch gewoon netjes aangepast?

[ Voor 51% gewijzigd door user109731 op 07-07-2006 14:48 . Reden: wat commentaar toegevoegd ]


Verwijderd

Topicstarter
Nou het punt is dat hij de artikelnrs niet hoeft te doen, ik sla de id's icm de andere gegevens weer via php in de db op. Als ik dan met php weer de db request gesorteerd op id geeft ie vanzelf de nieuwe volgorde. Het probleem is echter dat: als we zo beginnen

id_0 : 0
id_1 : 1
id_2 : 2

als ik nu up(2,3) uitvoer

zal dit het resultaat zijn

id_0 : 0
id_1 : 2
id_2 : 1

Dit is goed maar als ik nu nog een keer hetzelfde doe dan zou dit het resultaat moeten zijn:


id_0 : 1
id_1 : 2
id_2 : 0

maar als ik dat doe gebeurt er niets, en wanneer ik dan op de middelste rij op up druk gebeurtm dit:

id_0 : 0
id_1 : 1
id_2 : 2

Ok ik hoop dat het nu duidelijk is, ben benieuwd of jullie er iets mee kunnen

Terwijl er dan dit zou moeten gebeuren

id_0 : 1
id_1 : 2
id_2 : 0
Pagina: 1