ugrás a tartalomhoz

javascript vs xml

juhasztibi · 2008. Jan. 16. (Sze), 19.02
Sziasztok! Nemrég kezdtem el ismerkedni a javascriptel és máris egy olyan problémába ütköztem ami át kell küzdjem magamat. De úgy érzem segítség nélkül nem megy, ezért hozzátok fordulok. Olyan dolgot csinálok, hogy egy php fájl tartalmaz xml forrást. Ezt az xml-t szeretném beolvasni a weboldalam főoldalán. Javascripttel szeretném mindenképpen, mert gyorsan frissűl. Előre is köszönöm a segítségeket! Üdv, Tibi
 
1

PHP tartalmaz XML forrást??

Jano · 2008. Jan. 16. (Sze), 20.03
Mit értesz az alatt, hogy PHP tartalmaz XML forrást? A PHP állítja elő vagy a PHP használja, feldoglozza és annak eredményet kell neked megjeleníteni?

A "beolvasni a főoldalon" mit jelent? Az oldal letöltésekor jelenjen meg vagy az oldal letöltése után periodikusan frissüljön is?
3

php állítja elő

juhasztibi · 2008. Jan. 16. (Sze), 21.44
PHP állítja elő, de nem egy xml kiterjesztésű fájlt hanem egy php-t. Ezt kellene beolvasni js-el. Jqueryvel próbálom most, ezzel:
 $(function() {
         $('#update-target a').click(function() {
             $.ajax({
                 type: "GET",
                 url: "http://weblabor.hu/rss",
                 dataType: "xml",
                 success: function(xml) {
                     $(xml).find('label').each(function(){
                         var id_text = $(this).attr('id')
                         var name_text = $(this).find('name').text()
                         $('<li></li>')
                             .html(name_text + ' (' + id_text + ')')
                             .appendTo('#update-target ol');
                     }); 
                 }
             });
         }); 
     });

<div id='update-target'>
    <ol></ol>
</div>
Úgy tudom itt a datatype a fontos és az url mindegy milyen kiterjesztés, mert a fájlban keressük a megfelelő ágat.
A főoldalon egy boxba fogom használni. Gondolom itt ha létezik az id és a name akkor beolvassa.
5

nekem működik

Poetro · 2008. Jan. 16. (Sze), 23.14
$(function() {
  $('#update-target a').click(function() {
    $.ajax({
      type: "GET",
      url: "szerkesztett.xml",
      dataType: "xml",
      success: function(xml) {
        $(xml).find('item').each(function(){
          $('<li></li>')
          .html('<h1>'+ $(this).find('title').text() +'</h1>'+ $(this).find('description').text())
          .appendTo('#update-target ol');
        });
      },
      complete: function (XMLHttpRequest, textStatus) {
        alert(textStatus);
      }
    });
    return false;
  });
});
<div id='update-target'>
 <a href="#">UPDATE</a>
 <ol></ol>
</div>
A szerkesztett.xml a http://weblabor.hu/rss/szerkesztett oldal letöltött változata.

Ne felejtsd el:

Az XML-t csak arról a domain-ről tudod tölteni, ahol a HTML oldalad van. Továbbá ha lokálisan futtatod, azaz a saját gépeden, egy fileban, akkor lehet szükség van az XML file kiterjesztésre.
6

értem

juhasztibi · 2008. Jan. 16. (Sze), 23.39
Nem adhatok meg távoli fájlt amiből kiolvasom az xml forrást?
Nem értem teljesen, hiszen ez lenne a lényege nem?
Van egy fájl A helyen én B helyen beolvasom és használom a tartalmát.
7

XSS és Same origin policy

Poetro · 2008. Jan. 17. (Cs), 02.17
http://en.wikipedia.org/wiki/Cross-site_scripting

http://en.wikipedia.org/wiki/Same_origin_policy

Ha más domainről kellenek adatok, akkor érdemes egy proxy-t felállítani a saját domain-en, ami a távoli oldal adatait betölti, és továbbítja a JS számára.
8

curl

juhasztibi · 2008. Jan. 17. (Cs), 11.07
Egy olyan megoldást készítettem, ami php curl-el behúzza az xml fájlt egy akármi.xml-be és ezt már könnyedén fel tudom dolgozni. Köszi a hozzászólásokat, amint teljes lesz a megoldás postolom.

T.
2

XML+XSL

toxin · 2008. Jan. 16. (Sze), 21.40
nézzél rá alkalomadtán:
http://weblabor.hu/blog/20060524/ajax-fejlesztes#comment-28201

bővebben a http://www.w3schools.com/ lapjain

üdv Csaba
4

rendben

juhasztibi · 2008. Jan. 16. (Sze), 22.23
Megnézem, köszi!