|
|
|
| Мне нужно написать JS-скрипт для вывода результата работы PHP-скрипта в заданном месте страницы, php файл обрабатывает ХМЛ файл и получает курс валют, считывает http://cbr.ru/scripts/XML_daily.asp, а затем получает массив и выводит ХТМЛ, мне нужно чтобы JS както обрабатывал этот пхп скрипт т.е. результаты полученные их хмл файла и выводил их (не средствами ПХП а именно JS) | |
|
|
|
|
|
|
|
для: Tycoon
(06.11.2009 в 08:53)
| | Передайте курсы в JS сцеарий как массив (объект), и выводите функцией. Либо AJAX запрос и ответ в JSON формате. Например:
1) - печатаете в теле ответа (HTML страницы):
<script>
var usd = [<?=26.3423;?>, <?=-0.3647;?>];
var eur = [<?=4.2312;?>, <?=0.3647;?>];
//или объектом
var current = {'usd':[<?=26.3423;?>, <?=-0.3647;?>], 'eur':[<?=-4.2312;?>, <?=0.3647;?>]};
//далее эти переменные используете в JS сценарии
<script>
|
2) - запросом AJAX можете передавать объект current, применяя к нему eval, и далее использовать.
В примере подстановка РНР значений показана когда разрешен короткий РНР тег. | |
|
|
|
|
|
|
|
для: sim5
(06.11.2009 в 09:22)
| | а не могли бы подсказать как быть в моем приемере:
$url = file_get_contents("http://cbr.ru/scripts/XML_daily.asp");
$filename = 'curs/currency.xml';
file_put_contents($filename, $url);
$array = file($filename);
unset($array[0]);
$xml = implode("", $array);
$html = transform($xml, "currency");
return $html;
|
а это ХСЛТ трансформация :
<?xml version="1.0" encoding="windows-1251" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="windows-1251" />
<xsl:template match="Valute">
<xsl:if test="NumCode='840' or NumCode=978 ">
<ul>
<li>
<xsl:value-of disable-output-escaping="yes" select="Name" /> -
<b><xsl:value-of disable-output-escaping="yes" select="Value" /></b>
</li>
</ul>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
|
Помогите кто может :) | |
|
|
|
|
|
|
|
для: Tycoon
(06.11.2009 в 10:00)
| | Вы в вопросе задали - "на JS", в контент же вы отдаете XML, зачем? Чего вы хотите? | |
|
|
|
|
|
|
|
для: sim5
(06.11.2009 в 10:30)
| | 1. Курсы валют находятся в заданном xml-файле. Файл будет ежедневно обновляться (http://cbr.ru/scripts/XML_daily.asp).
2. Выводить курсы в виде ненумерованного списка с флагом страны слева от курса валюты. (XML можно сразу отправлять на XSL-трансформацию
т.е. обработанный файл выдает инфу в хтмл , а мне нужно чтобы пользователь мог выводить заданные валюту в нужном месте сайта через форму, с помощью ДЖ | |
|
|
|
|
|
|
|
для: Tycoon
(06.11.2009 в 10:39)
| | Значит так. Если вам нужны курсы валют с флажками и т.п., то вы должны пропарсить исходный XML файл, взять из него необходимые курсы валют, и эти переменные вставить в HTML-код, либо, если требуется работа с ними на клиенте, передать их как переменные в JS сценарий, как я уже показывал выше. | |
|
|
|
|
|
|
|
для: Tycoon
(06.11.2009 в 10:00)
| | В ответ на e-mail
Я не пользуюсь Аськой, хотя в принципе могу выйти на нее через Яшу. Но не буду, я не каждому даю свой контак онлайн связи, мне просто некогда веси разговоры и переписку.
А теперь о JS. Я не знаю xml, и не могу сказать вам, можете ли вы из того, что передаете на клиент выудить необходимое, чтобы использовать в сценарии. К тому же не понимаю, зачем вам передавать это клиенту, если вам нужны только значения, для дальнейшего оперированиями ими. Остальное я вроде бы сказал уже, повторю еще раз.
Здесь неоднократно приводился скрипт (таковой есть на softime, в разделе приложений) получения курса валют. Курс вы должны получать раз в сутки, и за сутки на стороне сервера вполне хватит время отпарсить запрос и получить курс.
Далее, при запросе страницы пользователем, отдаете значения курсов валют в JS-сценарий, например, в теле страницы выводим скрипт, в который подставляем РНР значения курсов:
<?
//получаем из базы ранее полученные данные курсов,
//и к примеру они равны:
$usd = 33.33;
$eur = 44.44;
//далее значения этих переменных передаем в JS
?>
<script>
var current = {'usd':[<?=$usd;?>],'eur':[<?=$eur;?>]};
</script>
|
После этого пользователь может обратиться к этим значениям в JS-сценарии, к примеру по клику на некую кнопку, обратившись к функции:
<script>
function getCurrent(src){
alert(current[src]);
}
</script>
<INPUT TYPE="button" VALUE="GET" ONCLICK="getCurrent('usd')">
|
Вот в принципе и все, чего вам конкретно надо, я не в курсе. | |
|
|
|
|
|
|
|
для: sim5
(06.11.2009 в 13:04)
| | а не знаете как это сделать на AJAX с использованием jquery, т.е. динамическая загрузка контента при помощи jquery в моем случае из пхп файла который уже получил курс валют | |
|
|
|
|
|
|
|
|
для: sim5
(09.11.2009 в 13:35)
| | Сейчас пришол к следующему этапу:
///////////////// Загружаю ХМЛ и трансофрмирую его в ХСЛТ (test.php)
$url = file('curs/XML_daily.xml');
unset($url[0]);
$xml = implode("", $url);
$html = transform($xml, "currency");
return $html;
|
далее
подключаю Ажакс
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<div id="content"></div> // контейнер, в который мы будем загружать контент
<script>
function show() // вызываем функцию show(), в которой прописан механизм получения контента из test.php
{
$.ajax({
url: "test.php",
cache: false,
success: function(html){
$("#content").html(html); //При успешном выполнении запроса, управление переходит функции, которая получает контент в
качестве параметра и записывает его контейнер
}
});
}
$(document).ready(function(){
show();
setInterval('show()',1000);
});
</script>
</body>
|
но в хмл файле несколько валют и выводится все а мне нужно чтобы на стороне клиента можно было задать параметр в котором можно было бы в ручную указать какие валюты отображать, не могли бы подсказать? | |
|
|
|
|
|
|
|
для: Tycoon
(11.11.2009 в 08:49)
| | Я же вам дал ссылку на тему в HTML потому, что прекрепил там CHM файл описания jQuery API. В описании прочитайте как передать переменные в AJAX-запросе, ну например, {'usd': 1}, и т.п.. Будете получать необходимую вам валюту. | |
|
|
|
|
|
|
|
для: sim5
(11.11.2009 в 09:20)
| |
require_once("xml2json.php");
$testXmlFile = "test1.xml";
file_exists($testXmlFile) or die('Could not find file ' . $testXmlFile);
$xmlStringContents = file_get_contents($testXmlFile);
$jsonContents = "";
echo $jsonContents = xml2json::transformXmlStringToJson($xmlStringContents);
|
function show()
{
$.get("currency.php", function(data){
$("#content").html(data);
}
);
}
$(document).ready(function(){
show();
//setInterval('show()',1000);
});
|
строка полученная в виде json имеет вид :
{"contacts":{"contact":[{"name":"John Doe","phone":"123-456-7890"},{"name":"Jane Doe","phone":"123-456-0000"},{"name":"John Smith","phone":"123-456-1111"},{"name":"Jane Smith","phone":"123-456-9999"}]}}>
|
можете подскзать как сделавть в в джава скрипте так тчобы можно было передавать парметры, т.е. скрипт который выше
пробовал делать так:
$.get("currency.php", { name: "John Doe", phone: "123-456-7890" }, function(data)
|
чтобы вывести тока 1 имя и телеофн к примеру, выводи все все равно | |
|
|
|
|
|
|
|
для: Tycoon
(12.11.2009 в 12:51)
| | Что-то во всем этом логики нет, то есть, если на сервер делать запрос name: "Коля", weight: "120", чтобы получить: Коля, вес 120 кг, то зачем вообще делать запрос, если ответ кроется в самом запросе?
Если нас интересует информация о Коле, и мы ее не знаем, то значит запрос должен иметь вид, типа:
user=коля&weight&phone&..... и т.д...
И что-то не видно, чтобы ваш серверный обработчик проверял параметры запроса, дабы выдать запрашиваемое, он у вас "выплевывает" все скопом. | |
|
|
|