Autor | Zpráva | ||
---|---|---|---|
noris Profil |
#1 · Zasláno: 26. 2. 2014, 22:00:36
Ahoj,
předávám array objekt z javascriptu do php souboru. Zde je kód, který ajaxem posílám php souboru: $.ajax({ url: 'result.php', data: pchecked, type: "POST", success: function() { $( "#listresult" ).load('result.php'); }, }); Zde je kód, kterým se snažím zpracovat objekt phpkem <?php $data = json_decode($_POST['data'], true); $blank = json_decode($_POST[''], true); $pchecked = json_decode($_POST['pchecked'], true); var_export($data); var_export($blank); var_export($pchecked); echo $data['0']; echo "_"; echo $blank['0']; echo "_"; echo $pchecked['0']; ?> Živá ukázka zde Po zakliknutí programů, se má odeslat a jejich id by se měla vypsat (nad notebookem, který se zobrazí). Ale stále mi to hází NULL :/ |
||
Alphard Profil |
#2 · Zasláno: 27. 2. 2014, 00:04:56
V post požadavku se odesílá
undefined=&undefined= . Chyba je někdo v tom javascriptu. Přesunu tohle vlákno z PHP do JS.
|
||
_es Profil |
#3 · Zasláno: 27. 2. 2014, 05:49:59
noris:
Prečítaj si dokumentáciu k funkcii, čo používaš na odosielanie požiadaviek (api.jquery.com/jQuery.ajax). Z nej: If value is an Array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below). ... traditional Type: Boolean Set this to true if you wish to use the traditional style of param serialization. A trebárs $.param([false,false]) dá výsledok "undefined=&undefined=" .
|
||
noris Profil |
#4 · Zasláno: 27. 2. 2014, 10:55:31
zkoušel jsem nastavit
traditional: true JSON.stringify(pchecked), ale ani jedno z těchto řešení nepomáhá, php stále vyhazuje NULL |
||
_es Profil |
#5 · Zasláno: 27. 2. 2014, 11:10:50
noris:
Čo si tak tú dokumentáciu lepšie naštudovať? Skontroloval si si, aké dáta dávaš do tej jQuery funkcie a naštudoval si si, aké by mali naozaj byť? Či už ako pole (Array) alebo ako objekt. > zkoušel jsem nastavit traditional: true |
||
noris Profil |
#6 · Zasláno: 27. 2. 2014, 12:07:30
_es:
Asi už to vidím, vkládám tam array, přitom tam má být buď plainobject nebo string. To array by se tedy mělo překonvertovat do objektu, o to by se mělo ale postarat JSON.stringify, které nefunguje.. |
||
_es Profil |
noris:
„To array by se tedy mělo překonvertovat do objektu, o to by se mělo ale postarat JSON.stringify“ Viď: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify - to vytvorí z nejakého objektu či hodnoty textový reťazec. V dokumentácii aj v príkladoch k jQuery.ajax máš vysvetlené, ako môžeš odosielané dáta, ak nie sú ako obyčajný text, reprezentovať pomocou objektu a ako pomocou poľa.
|
||
noris Profil |
#8 · Zasláno: 27. 2. 2014, 20:12:36
Tak již to funguje:
$.ajax({ url: 'result.php', data: { id : pchecked }, type: "POST", success: function(pchecked) { $( "#listresult" ).html(pchecked); }, }); $data = var_dump($_POST['id']); json_encode($data); |
||
Časová prodleva: 10 let
|
0