Jump to content
php.lv forumi

.get un divi varianti


aika

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
Link to comment
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ā
...

Link to comment
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

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

Link to comment
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 :)

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

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