0

私はphpとjavascriptの初心者なので、怒らないでください。わかりましたので、別のサーバーからxmlファイルを取得してから、1つのデータ(数値)のみを抽出し、それをjavascript変数に入れて計算できるようにしたいと思います。

xml ファイルを正常に取得するこのコードがあり、必要なデータを含む $result 変数を取得しますが、そのデータを javascript 変数に保存できません。この数値が JavaScript で必要な理由は、すべての計算が JavaScript でコーディングされているためです。

これはphpコードです:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
'http://www.pbz.hr/Downloads/PBZteclist.xml');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($ch);

echo($xml);

curl_close($ch); 

$xmlObject = new SimpleXMLElement($xml);
$node = $xmlObject->children();
$result =   $node[0]->Currency[12]->BuyRateForeign;
echo("<br />");
echo("<br />");
echo $result;
?>

EUR7,480000からのデータが必要です

その数7,480000は、抽出してjavascript変数に保存する必要があるすべてです。

私のやり方が間違っているのかもしれませんが、私はすべてを試しました。私を助けてください。

4

3 に答える 3

0

ページの読み込み時にデータを JavaScript で設定する場合は、php を使用して JavaScript 文字列をエコーし​​、変数を開始できます。

PHP の場合:

<script>
<?php echo "var data = ".$result; ?>
</script>

データを非同期で取得する場合は、javascript AJAX を使用して、データを何らかの形式 (JSON) または単一の文字列値で出力する PHP ページを呼び出す必要があります。

于 2012-11-15T00:50:09.130 に答える
0

Ajax でこれを行うつもりがないと仮定すると、次のようになります。

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.pbz.hr/Downloads/PBZteclist.xml');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($ch);

echo($xml);

curl_close($ch);

$xmlObject = new SimpleXMLElement($xml);
$node = $xmlObject->children();
$result =   $node[0]->Currency[12]->BuyRateForeign;
?>
<script type="text/javascript">
    var rate = '<?php echo $result; ?>';
</script>    
于 2012-11-15T00:47:01.830 に答える
0

順序が変わった場合に備えて、xpath を使用して値を取得することをお勧めします。文字列として使用する場合は、引用符で囲みます。計算で使用している場合は、コンマなどを取り除く必要があるかもしれません...

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
'http://www.pbz.hr/Downloads/PBZteclist.xml');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($ch);
curl_close($ch);

//echo($xml);

$sxe = new SimpleXMLElement($xml);

$result = $sxe->xpath("//Currency[@Code='978']");
$BRF = $result[0]->BuyRateForeign;
?>
<script>
  var bfr_string = '<?= $BRF?>'; //string
  var bfr_number = <?= str_replace(',','.',$BRF)?>; //number
</script>
于 2012-11-15T01:47:43.023 に答える