PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Vormi name and array
Postitaja: joker 2015-10-08 21:47:16
Vorm järgmine:

<input type="text" name="main[firstname]" id="firstname" value="James"> <input type="text" name="main[lastname]" id="lastname" value="Bond">


Kuidas saada väljade nimesid js arraysse, et tulemus oleks järgmine:

js_array = ['main':{'firstname': 'James', 'lastname' : 'Bond'}]

Viimati muudetud: 08-10-2015 21:47:51
Muutja: joker
Põhjus:

RE: Vormi name and array
Postitaja: - 2015-10-08 21:58:15
Katseume veidi konkreetsemad ikka olla. Javascript peaks olemasoleval lehel HTMList selle info kokku koguma? Või peaks PHP-s selle javascripti koodi koostama?
RE: Vormi name and array
Postitaja: - 2015-10-08 22:01:39
TSITEERITUD:
js_array = ['main':{'firstname': 'James', 'lastname' : 'Bond'}]

Ühtlasi juhiks tähelepanu, et see süntaks on vale, ilmselt mõtled
{'main':{'firstname': 'James', 'lastname' : 'Bond'}} ning see pole massiiv (nagu muutuja nimest järeldub), vaid objekt
RE: Vormi name and array
Postitaja: joker 2015-10-08 22:21:22
Jah, et Javascript korjaks info kokku, ning kuvaks objektina.
RE: Vormi name and array
Postitaja: blaa 2015-10-09 09:24:41
var obj = {'main':{'firstname': document.getElementById('firstname').value, 'lastname' : document.getElementById('lastname').value}};
RE: Vormi name and array
Postitaja: joker 2015-10-09 10:23:48
Päris hästi lahenduseks ei sobi.
Oleks vaja universaalset, et js oskaks name väljast main[] välja lugeda.
RE: Vormi name and array
Postitaja: - 2015-10-09 10:30:59
TSITEERITUD:
Päris hästi lahenduseks ei sobi.
Oleks vaja universaalset, et js oskaks name väljast main[] välja lugeda.


Kui jQuery algteadmised olemas, siis ju veerand tunniga tehtav.
RE: Vormi name and array
Postitaja: - 2015-10-09 10:51:34

var obj = {}

$("input[type='text']").each(
function() {
var name = $(this).attr('name').split('[');
var name1 = name[0];
var name2 = name[1].split(']')[0];

if (!obj[name1]) {
obj[name1] = {};
}
obj[name1][name2] = $(this).val()
}
);

console.log(obj);
console.log(JSON.stringify(obj));


Ühtlasi juhin tähelepanu, et see JSON, mida näites kasutasid, pole korrektne, ülakomade asemel peavad olema jutumärgid. Tihti läheb ka ülakomadega variant läbi, kuid mõnes kohas võivad probleemid tekkida.
RE: Vormi name and array
Postitaja: hmz 2015-10-11 09:42:03
TSITEERITUD:

Kui jQuery algteadmised olemas, siis ju veerand tunniga tehtav.


Pigem poole minutiga :)

Kui vormi ID on nt 'myform', siis saad andmed ajaxiga saatmiseks nii:
var data = $('#myform').serialize();

https://api.jquery.com/serialize/
RE: Vormi name and array
Postitaja: - 2015-10-11 21:20:02
TSITEERITUD:

Pigem poole minutiga :)

Kui vormi ID on nt 'myform', siis saad andmed ajaxiga saatmiseks nii:
var data = $('#myform').serialize();

https://api.jquery.com/serialize/


See on muidugi äge, aga mismoodi see antud küsimusse puutub?
RE: Vormi name and array
Postitaja: ise php 2015-10-11 23:28:59
Kas mitte täiesti otseselt? serialize() tekitabki ju saatmiseks sobiva masiivi, mille saad masiiviks tagasi unserialize() abil. Küsimus oligi ju massiivi tekitamise kohta.
RE: Vormi name and array
Postitaja: - 2015-10-12 00:32:50
TSITEERITUD:
Kas mitte täiesti otseselt? serialize() tekitabki ju saatmiseks sobiva masiivi, mille saad masiiviks tagasi unserialize() abil. Küsimus oligi ju massiivi tekitamise kohta.

Küsiti teatud kindla struktuuriga JS objekti koostamise kohta. Serialize teeb vormist URL-encoded stringi.
RE: Vormi name and array
Postitaja: ise php 2015-10-12 20:57:57
Usun, et see oli pigem näitlik struktuuri lahendus, mitte täpselt sarnane. Viimati mainitu on lihtsam, kuid keegi ei keela teisiti teha.

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0823428630829