Jump to content
php.lv forumi

JSON no textarea nedarbojas


Wuu

Recommended Posts

  • Replies 48
  • Created
  • Last Reply

Top Posters In This Topic

Ko mocaties ar niekiem.. ja viss darbojas, tad nav īpaši svarīgi, kā tiek panākts.
 
Mans variants, kuru lietoju un esmu laimīgs ar to:
 
Javascript:

var url = '/my-api';
var data = { some_key: 'some_val' };

$.ajax(url, {
  type: 'POST',
  contentType: 'application/json',
  data: JSON.stringify(data),
  dataType: 'json',
  
  success: function(response, textStatus, jqxhr)
  {
    console.log(response);
  }

});    

PHP:

<?php

$data = json_decode($HTTP_RAW_POST_DATA);

// te daram kaut ko ar datiem
// ...

header('Content-type: application/json; charset=utf-8');

echo json_encode(array(
  'success' => true,
  'some_data' => 123
));

Attiecīgi, gan nosūtīto, gan saņemto var skaisti formatētu apskatīt caur Chrome devtools.

Edited by gurkjis
Link to comment
Share on other sites

Es gluži vienkārši neredzu jēgu tavā kodā enkodēt client-side ajax datus un pēc tam server-side tos dekodēt. Tu taču POSTo un tas acīmredzami nav nekāds API.

Datus Chrome devtools var normāli apskatīt arī neenkodējot, nezinu, kur tu rāvi, ka vajag kodēt.

Waste of resources.

Link to comment
Share on other sites

@jurciks Arī tava klasiskā forma uz serveri tiek sūtīta nokodēta konkrētā formātā (param=value&param2=value2...) un php pēc tam izparsē saņemtos datus un uzražo priekš tevis $_POST masīvu

 

Šajā gadījumā saņemto datu dekodēšana notiek ar json_decode

 

Atšķirās tikai veids, kā dati servera pusē tiek atkodēti

 

Toties json_decode gadījumā tu bez sāpēm vari saņemt n līmeņu datu struktūru ar kaudzi propertijiem. Tā ir ērtībā un mūsdienās web aplikācijas jau sen vairs neaprobežojas ar vienlīmeņa formiņu aizpidīšanu

Link to comment
Share on other sites

nu ja tev ir tikai key-value pāri, tad jā, JSONs nav nepieciešams. Bet ja vajag sarežģītākus datus ar masīviem un objektiem, tad ir savādāk.

 

Man liekas, ka tu runā par parastu form-encoded pieprasījumu, bet manā gadījumā bez JSON encode neiztikt, un headerī arī jānorāda application/json, savādāk Chrome taču nemēģinās zīlēt, ka contentā ir tieši JSONs un tāpēc tagad to attiecīgi formatēs Preview tabā...

Edited by gurkjis
Link to comment
Share on other sites

Pamēģiniet kodēt bez apziņas "waste of resources" jeb domājot par priekšlaicīgu optimizāciju... atveras uzreiz jauni ceļi, kā problēmas risināt, nevis laicīgi iespējas nocērtot "tā nevar darīt datoriņam būs grūti".

 

Labāk dabūt normālu rezultātu no funkcionālā viedokļa ( ko var ātrāk/labāk izdarīt,kad atmetam optimizācijas untumus), un tad,ja kāds aparāts sāk protestēt, sāciet optimizēt (protams ja bizness tik tālu vispār tiks).

Edited by gurkjis
Link to comment
Share on other sites

ā. nu jā :)

 

Vajag performance benchmarku, tad ticēšu, ka tas ir slikti, no tāda viedokļa skatoties.

 

Bet tā atkal ir uztraukšanās par nenozīmīgiem sīkumiem. Programmētāja laiks ir dārgāks par mašīnas laiku.

Edited by gurkjis
Link to comment
Share on other sites

Tur jau ir problēma, ka nekādu sūda benchmarku nevajag. Pilnīgi vienalga kurš stils tiks izmantots, kamēr tiks izmantots tikai viens un nebūs kašķis “par stiliem“.

Link to comment
Share on other sites

Piekrītu, ja ir viens kopējs projekts, tad stils ir jāievēro. Tur nav iemesla strīdēties. Ja programmētājs neprot adaptēties, tā ir viņa deficience jeb trūkums. Man šāds trūkums ir, tāpēc es izvēlos strādāt pa savam, lai man nav sevi jāspiež darīt neērtas lietas.

Edited by gurkjis
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...