Ahoj, ono to úplně (jen) na straně JavaScpritu. Kvůli cross-site scripting policy totiž není možné (ve většině prohlížečů) volat Ajax request z jedné domény na druhou. Je několik způsobů, jak se to obchází.
1. iFrame
2. PHP gateway, která je na stejné doméně
Sepsal jsem ti to hodně zhruba, spíš abys to pochopil a předělal sis to. Používá to jQuery (asi znáš)
Tohle je ten "plugin", stáhne XML rozparsuje a udělá z něj objekt.
PHP kód:
//jquery.ares.js
(function($) {
$.ares = function(idNumber, options) {
var defaults = {
url: 'http://wwwinfo.mfcr.cz/cgi-bin/ares/darv_bas.cgi?ico=--idNumber--',
gateway: 'ajax-gateway.php?url=--url--',
finished: null,
notfound: null,
};
var opts = $.extend(defaults, options);
var url = opts.gateway.replace('--url--',
opts.url.replace('--idNumber--', idNumber));
$.get(url, function(data) {
var xml = $(data);
if (xml.find('D\\:E').length == 1) {
// Chyba!
if ($.isFunction(opts.notfound)) {
opts.notfound.call(this);
}
} else {
if ($.isFunction(opts.finished)) {
var obj = {};
obj.idNumber = xml.find('D\\:ICO').html();
obj.vatNumber = xml.find('D\\:DIC').html();
obj.name = xml.find('D\\:OF').html();
obj.country = xml.find('D\\:NS').html();
obj.city = xml.find('D\\:N').html();
obj.cityPart = xml.find('D\\:NCO').html();
obj.street = xml.find('D\\:NU').html() + ' ' + xml.find('D\\:CD').html();
if (xml.find('D\\:CO').html().trim() != '') {
obj.street += '/' + xml.find('D\\:CO').html();
}
obj.postalCode = xml.find('D\\:PSC').html();
opts.finished.call(this, obj);
}
}
});
}
})(jQuery);
Tady je gateway pro stahování obsahu stránek (XML z ares), to je snad úplně jasné
PHP kód:
// ajax-gateway.php
<?php
echo file_get_contents($_GET['url']);
No a tady je ukázka, jak se to používá
PHP kód:
// index.html
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="cs" xml:lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="cs" />
<title>jQuery + Ares</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.ares.js"></script>
<script type="text/javascript">
$('document').ready(function() {
$('#submit').bind('click', function(event) {
$.ares($('#ic').val(), {
notfound: function() {
alert('Tak tohle IC asi neexistuje!');
},
finished: function(object) {
$('#result').html('');
for (x in object) {
var row = $('<span>' + x + ' - <strong>' + object[x] + '</strong><br /></span>');
$('#result').append(row);
}
}
});
});
});
</script>
</head>
<body>
<h1>Ares & jQuery</h1>
<label for="ic">IČ</label>
<input type="text" id="ic" name="ic" value="" />
<input type="button" value="Prověřit Ares" id="submit" />
<div id="result" style="margin-top: 10px;">
</div>
</body>
</html>
Celé dohromady si to můžeš prohlédnout tady: http://public.trunecek.net/ares/
Kdyby něco, ptej se ;).