Autor | Zpráva | ||
---|---|---|---|
lokix Profil |
#1 · Zasláno: 31. 10. 2014, 17:10:26
Zdravím všechny,
potřebuju poradit už jsem z toho šílený ;o) Pokouším se přihlásit pomocí jquery a ajaxu bez refresh stránky. Samotné odeslání dat ze 2 inputů (není to form) přes jquery.ajax() je v pořádku a na straně serveru (v php) dostanu z db podle přijatých údajů json pole ve tvaru: [{"username":"xxx","surname":"xxx","email":"xxx@seznam.cz","ulice":"xxx","cp":"xxx","mesto":"xxx","psc":"xxx"}] Což je super, Ale už nedokážu pracovat s vrácenými daty. Pokud se pokusím vypsat alertem dostanu toto: undefined. Jde mi o to, že vrácená data chci apendnout k dalším inputů, které jsou pod tím na stránce a ve formu - toto už bych zvládl. Zde je kód: $(".prihlaseni").click(function(){ var formData2 = { 'email' : $('input[name=email2]').val(), 'password' : $('input[name=password2]').val() }; // Ajax $.ajax({ url: "/dev/balonparty/inc/login.php", type: "POST", data: formData2, dataType: 'json', cache: false, // success: function(data) async: false, success: function (data) { console.log(data); alert(data.username); -> vypíše undefined. // alert(JSON.stringify(data)); -> toto vypíše json, ale nevím jak na samotné klíče. } }); }); Žádám kohokoliv o radu jak na to, protože už jsem zkoušel vše. Jinak omluvte kvalitu kódu, jquery a ajax se teprve učím. |
||
Xethilos Profil |
Smazáno..
|
||
Chamurappi Profil |
#3 · Zasláno: 31. 10. 2014, 17:59:05
Reaguji na lokixe:
Pokud si ze serveru posíláš JS pole s jednou položkou, tak ta položka je v data[0] .
Reaguji na Xethilose: Když uvádí dataType: 'json' , tak hlavičku nepotřebuje, ne?
|
||
Xethilos Profil |
#4 · Zasláno: 31. 10. 2014, 18:07:24
Chamurappi:
Nevšiml jsem si toho, moje řešení nepomůže, máš pravdu je tam pole a vnořený objekt. |
||
lokix Profil |
#5 · Zasláno: 31. 10. 2014, 19:34:31
Chamurappi:
Tak moc díky. Já jsem se s tím páral všemožně, ale ono jde opravdu snadno přistupovat k data[0].klíč. Vyřešno ;o) |
||
_es Profil |
#6 · Zasláno: 31. 10. 2014, 19:46:07
lokix:
„ono jde opravdu snadno přistupovat k data[0].klíč.“ A nebolo by jednoduchšie namiesto poľa s jednou položkou odosielať len tú jednu položku - objekt? Teda odstrániť tie nadbytočné hranaté zátvorky? |
||
lokix Profil |
_es:
No ono jde o 7 položek, které si z toho předvyplním do formu. [{"username":"xxx","surname":"xxx","email":"xxx@seznam.cz","ulice":"xxx","cp":"xxx","mesto":"xxx","psc":"xxx"}] Potřebuju všechny ;o) |
||
_es Profil |
#8 · Zasláno: 31. 10. 2014, 20:09:35
lokix [#7]:
No ale tých 7 položiek predsa nemusíš mať „naládovaných“ v jednom prvku jednoprvkového poľa. Môžeš mať predsa len {"username":"xxx","surname":"xxx","email":"xxx@seznam.cz","ulice":"xxx","cp":"xxx","mesto":"xxx","psc":"xxx"} a potom namiesto data[0].klíč k nim pristupovať ako k data.klíč .
|
||
lokix Profil |
_es:Aha chápu, ale jak se k tomu dopracuji když (myslel jsem, že dobře) v php generuju ty data takto:
$data[] = array( "username" => $row['username'] , "surname" => $row['surname'] , "email" => $row['email'] , "ulice" => $row['ulice'] , "cp" => $row['cp'] , "mesto" => $row['mesto'] , "psc" => $row['psc'] ); echo json_encode($data); [{"username":"xxx","surname":"xxx","email":"xxx@seznam.cz","ulice":"xxx","cp":"xxx","mesto":"xxx","psc":"xxx"}]
Ty "[]" závorky tam mám a zbavit se jich čistě neumím - jen prasácky. S js,jquery teprve začínám a potřebuju pochopit ještě dost základů, to vím a kdybych to nepotřeboval do mého projektu, který je normál html+php5+mysql tak se budu učit, ale doba je zlá ;o) a musím se učit už za pochodu. Můžeš tedy poradit jak? Je to normál js pole pokud to chápu dobře. A nechci Vás Pánové zneužívat, ale měl bych dotaz s tím související. Součástí té stránky - jedná se o košík (eshopu). Potřeboval bych poradit, nakopnout co je lepší a jak na to. Potřebuju z inputu (nevím kolik jich dopředu bude) kde je množství ks a vedle cena za kus počítat opět nejlépe přes ajax/jquery když si uživatel změní počet aby se přepočetla cena. Např.: zboží 1 5 ks cena za kus->100 celkem cena. Pod tím zase produkt 2 atd. Pod produkty mám tlačítko přepočítat. Napadlo mě to udělat tak, že zase data pošlu na php kde je jednoduše sečtu a vrátím zpět jako tady, ale při vyšším počtu budu potřebovat nějaký cyklus v js ne? A jako poslední sečtu celkové ceny těch produktů a dole mám možnosti dopravy a balné tedy 2x 2 radioboxy, které potřebuju sečíst a následně sečíst vše dohromady: zboží celkem, zboží 2 celkem, atd... + doprava + balné. U dopravy je bud 95 kč nebo 0 - osobně a u balného 24 + 0 - osobně. - Toto je již vyřešeno. Měl jsem chybku, ale podařilo se na to přijít: $().ready(function () { function calcscore() { var score = 0; $(".calc:checked").each(function () { score += parseInt($(this).val(), 10); }); $("input[name=sum]").value(score) } $(".calc").change(function () { calcscore() }); }); Vím, že sem to tu vychrlil a ani nečekám, že to za mě někdo udělá, ale tady v js,jquery/ajaxu jsem si dost nejistej, ale chci se to na tom učit. Určitě moc všem děkuji již za předešlé rady a trpělivost. |
||
juriad Profil |
#10 · Zasláno: 1. 11. 2014, 09:51:04
lokix:
Právě že se jich zbavíš jednoduše. Prostě je z toho prvního řádku odstraň. $data = array( |
||
lokix Profil |
#11 · Zasláno: 1. 11. 2014, 10:09:12
juriad:
Aha díky ;o) |
||
Časová prodleva: 9 let
|
0