Jump to content
php.lv forumi
aika

.get un divi varianti

Recommended Posts

Situācija sekojoša: .get var saņemt divu tipu datus: html rindu vai json masīvu

kā man atšķirt kas tika atgriezts?

Rakstīju kodu pārliecībā ka $.isarray(data) palīdzēs, bet nekā...

 

$.get("findproduct.fnc.php?id="+$("#id").val(),
  function(data){
 	if (data!=0) {
  	if (data.id){ // nestrādā
  	if ($.isarray(data)){ // arī nestrādā
...

 

php atgriež {"id":"4008146456602"}, ja nu kas

Edited by aika

Share this post


Link to post
Share on other sites

pieliec papildu parametru kurš tad informētu kādā formātā vēlas saņemt datus no findproduct.fnc.php

$.get("findproduct.fnc.php?cType=json vai html&id="+$("#id").val(),
  function(data){
   	if (data!=0) {
   	if (data.id){ // nestrādā
   	if ($.isarray(data)){ // arī nestrādā
...

Share this post


Link to post
Share on other sites

nav zināms kādā formātā datus atgriezīs (ja tiek atrasts viens ieraksts - tad jsons, ja vairāki, tad html tabula)

šajā galā vajag tikt skaidrībā kas tika padots.

Edited by aika

Share this post


Link to post
Share on other sites

Ar šito testējam vai tas ir JSON. Ja nav, tad loģiski, ka tas būs tavs HTML.

Share this post


Link to post
Share on other sites

Paldies, arī variants. Tātad tomēr nav tik vienkārši. Turklāt pamanīju ka izslavētais datatype Intelligent Guess arī manā gadījumā nemaz json neatpazīst. Tāpēc nācās ielikt .get ar , "json" un padot arī html kā json array

Share this post


Link to post
Share on other sites

Nu jā, JSON kā tāds nav datu tips. Tas ir kkāds datu tips pārtaisīts par stringu.

Share this post


Link to post
Share on other sites

daGrevis - da tur jau tā lieta ka jquery apgalvo ka atpazīs: dataTypeThe type of data expected from the server. Default: Intelligent Guess (xml, json, script, or html).

briedis: da tā arī izdarīju jau :) !

Share this post


Link to post
Share on other sites

Problēma jāmeklē ir cēlonī - kāpēc vispār ir tā, ka var uz tiem pašiem parametriem atgriezt gan JSON gan HTML? Manuprāt, tas ir ļoti neintuitīvi un izklausās pēc "coding by coincidence". Salabo kodu tā, lai tu vienmēr zini, kas tiks atgriezts, attiecīgi, pievieno kādu parametru, kas norāda, kāds tips ir jāatgriež kurā gadījumā, un tu zināsi kāds tips ir jānorāda pie $.ajax.

Share this post


Link to post
Share on other sites

nu bet normāli ka meklēšanas rezultāts var būt gan viens, īstais, gan vairāki līdzīgie ieraksti. līdz ar to, manuprāt, tīri normāli ir php pusē sagatavot atbildi, kuru pasniegt! Ja tā ir datu rinda ko ievietot formā, tad rinda, ja tas ir atlasīto variantu saraksts, tad html sagatvots saraksts. Ja jau .get piedāvā tādu iespēju. Galu galā ja es pērku ķieģeli, kuru reklamē kā gan stāvošu, gan guļošu, jocīgi ir to tomēr mūrēt tikai guļošu, jo stāvēt viņam nesanāk :)

Share this post


Link to post
Share on other sites

Ja ir viens ieraksts, ieliec to masīvā.

Ja ir vairāki ieraksti, tas jau būs masīvs.

 

Masīvu vienmēr JSON enkodē.

Share this post


Link to post
Share on other sites

Nu ok, bet tad arī padod parametru kādu atbildi tu sagaidi - json vai html un attiecīgi to pašu liec ajax pieprasījumā.

 

$.get(url, {data : data, type : 'json'}, function(){}, 'json');
$.get(url, {data : data, type : 'html'}, function(){}, 'html');

 

Nevis tā, ka tu nezini kas tieši tiks atgriezts.

Share this post


Link to post
Share on other sites

Nu bet normāli ka meklēšanas rezultāts var būt gan viens, īstais, gan vairāki līdzīgie ieraksti.

 

Ja ir viens īstais taisi masīvu ar vienu elementu, bet ja ir vairāki, tad taisi masīvu ar vairākiem elementiem un vienmēr nosūti to masīvu kā JSON virkni. Tad arī nosaki cik Tev ierakstu ir masīvā viens vai vairāki un tas atbilstoši to apstrādā.

 

Cik saprotu no aprakstītā, tad jau php pusē Tu uzreiz saproti, kas tiek padots, tātad vari to izveidot tā, ka JSON virknē tiek padoti divi mainīgie: tips un saturs, atbilstoši tips norāda vai tas ir vienkāršs teksts, vai html saraksts, otrajā mainīgajā tad Tu padot pašu tekstu vai htmlu un tad, saņemot JSON, ar JavaScript pārbaudi tipu un atbilstoši tam apstrādā saturu.

Edited by Maris-S

Share this post


Link to post
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...