var gebruiken buiten .each functie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • meneer william
  • Registratie: Maart 2011
  • Laatst online: 04-11-2024
Beste Tweakers,

ik ben bezig met een dynamisch invoerveld en daarvoor ben ik een dynamische .get url aan maken met jquery. het toevoegen van velden lukt zonder probleem. alleen het lukt niet om de get url die opgebouwd wordt door de .each functie te gebruiken buitenom de .each functie. ook weet ik niet of de url nu goed wordt opgebouwd.



zie jquery:

JavaScript: index.php
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
//hierboven worden de input velden gemaakt ik val jullie daarmee niet lastig dat werkt top.

$('#db_artiest_opslaan').live('click', function(){
    var string = 'action.php?db_artiest_opslaan=' + count; //dit is het begin van de get url
    $(".input").each(function (string) {
      var name = $(this).attr("id"); //hier wordt elke <input> apart toegevoegt aan get url
      var info = $(this).attr("value");
      var string += '&' + name + '=' + info;
      return string;  //hier probeer ik de variable globaal te maken
    }); 
    
         //en zoals je hieronder kunt zien probeer ik daarna de string var te gerbuiken al get url

    //$.get(string, function (data) {
      //$('#content').html(data);
    //});
    
    });
 


ik snap er echt helemaal niks van ik heb al heel veel geprobeerd en krijg het maar niet voor elkaar. weet iemand wat ik moet doen om dit probleem op te lossen of kan iemand mij de juiste weg insturen.

voorbeeld of meer info zie http://217.121.76.24:8080/database/

bij voorbaad dank. }:O 8)

sirwilliam


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Je bent de string variabele elke keer aan het overschrijven in de loop.

Maar het is waarschijnlijk een beter idee om serialize() te gebruiken: http://api.jquery.com/serialize/

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • meneer william
  • Registratie: Maart 2011
  • Laatst online: 04-11-2024
Beste Wolfboy,

bedankt voor je snelle reactie. ik had nooit verwacht dat er voor deze actie een zo voor de hand liggende functie bestond. ik denk dat ik meer door de jquery apies moet bladeren.

bedankt in ieder geval mijn code ziet er nu een stuk korter uit.

JavaScript: index.php
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
$('#db_artiest_opslaan').live('click', function(){
  
    var str = $(":text").serialize();
    var string = 'action.php?db_artiest_opslaan=' + count + '&' + str;
    
    $('#res').text(string);
    
    //$.get(string, function (data) {
      //$('#content').html(data);
    //});
    
    });
 


voorbeeld of meer info zie http://217.121.76.24:8080/database/

zeer veeldank _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_

sirwilliam


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

form-serialisatie is best wel lastig (goed) te doen in javascript, dus het is zeker aan te raden dat wiel niet zelf proberen uit te vinden als het al in je eigen library zit ;)

Anyway, zoiets zou wel gewerkt hebben volgens mij (ik doe doorgaans niet aan jQuery :P):

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
var string = 'action.php?db_artiest_opslaan=' + count;

$('.input').each(
    function()
    {
        var name = $(this).attr('id'); // why id and not name ?
        var info = $(this).attr('value');

        // string should be in scope (at least, in real javascript it would be)
        string += '&' + name + '=' + info;
    }
);


maar je gaat hier voorbij aan form-elementen die een andere benadering nodig hebben, en je vergeet escaping/encodering toe te passen :)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

crisp schreef op zaterdag 26 mei 2012 @ 22:47:
maar je gaat hier voorbij aan form-elementen die een andere benadering nodig hebben, en je vergeet escaping/encodering toe te passen :)
Die eerste kan je bij jQuery volgens mij dan weer oplossen door $(this).val() te gebruiken :)

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Het werkt niet omdat je de variabele string opnieuw definieert binnen de scope van je .each callback functie. Probeer eens 'var' voor string weg te halen binnen je callback?

Zou moeten werken:

JavaScript:
1
2
3
4
5
6
7
8
9
10
$('#db_artiest_opslaan').live('click', function(){ 
    var string = 'action.php?db_artiest_opslaan=' + count; //dit is het begin van de get url 
    $(".input").each(function (string) { 
      string += '&' +  $(this).attr("id")+ '=' + $(this).attr("value"); 
    });   

    $.get(string, function (data) { 
      $('#content').html(data); 
    }); 
});
Pagina: 1