WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Separera html från JSON (https://www.wn.se/forum/showthread.php?t=29503)

danjel 2008-05-23 15:01

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?

Vimp 2008-05-29 15:12

Det där ser ändå relativt smärtfritt ut. Hur vill du skriva ut det?

danjel 2008-05-29 16:00

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å..

Vimp 2008-05-29 16:09

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.


Alla tider är GMT +2. Klockan är nu 00:59.

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