Kom ihåg mig?
Home Menu

Menu


Separera html från JSON

Ämnesverktyg Visningsalternativ
Oläst 2008-05-23, 15:01 #1
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Jag försöker hitta ett lämpligt sätt att separera ut HTML kod från javascript
kod vid JSON anrop. Nu är lösningen den att man skapar html via DOM i själva loopen, typ:

// Process the JSON data returned from the server
var messages = [];
try {
messages = YAHOO.lang.JSON.parse(o.responseText);
}
catch (x) {
alert("JSON Parse failed!");
return;
}

YAHOO.log("PARSED DATA: " + YAHOO.lang.dump(messages));

// The returned data was parsed into an array of objects.
// Add a P element for each received message

for (var i = 0, len = messages.length; i < len; ++i) {
var m = messages[i];
var p = document.createElement('p');
var message_text = document.createTextNode(
m.company_name + ' says "' + m.company_name + '"');
p.appendChild(message_text);
msg_section.appendChild(p);
}


Men det jag vill göra på ett bra sätt är att ha HTML markupen för denna loop separerat
bort från javascript koden..

Har någon sett en bra lösning på detta?
danjel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-29, 15:12 #2
Vimp Vimp är inte uppkopplad
Medlem
 
Reg.datum: Aug 2003
Inlägg: 88
Vimp Vimp är inte uppkopplad
Medlem
 
Reg.datum: Aug 2003
Inlägg: 88
Det där ser ändå relativt smärtfritt ut. Hur vill du skriva ut det?
Vimp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-29, 16:00 #3
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Ja skulle alltså vilja ha en html mall som man utgår ifrån, typ:

for (var i = 0, len = messages.length; i < len; ++i) {
var m = messages[i];

template.add("id", m.company_id);
template.add("name", m.company_name);

}

och så kanske man har en en tabell som är definierad i själva sidan,
så att man binder data från json till en html mall
Så det blir en renare separation..



<table id="template">
<tr>
<th>id</th>
<th>name</th>
</tr>
<tr>
<td id="company_id"><td>
<td id="company_name"><td>
</tr>
</table>


Kan fundera ut en lösning.. men om
det finns nån som gjort det så..
danjel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-05-29, 16:09 #4
Vimp Vimp är inte uppkopplad
Medlem
 
Reg.datum: Aug 2003
Inlägg: 88
Vimp Vimp är inte uppkopplad
Medlem
 
Reg.datum: Aug 2003
Inlägg: 88
Kan du få rådatan som XML istället för JSON? Då kan du använda en XSLT-template för att transformera texten så som du vill ha den.
Vimp är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017