2015-11-20 2 views
-4

Пожалуйста, помогите мне разобраться в эквиваленте javaScript/jQuery этого PHP-кода.php to javaScript

<?php 
    $from = 'USD'; 
    $to  = 'INR'; 
    $url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X'; 
    $handle = @fopen($url, 'r'); 
    if ($handle) { 
     $result = fgets($handle, 4096); 
     fclose($handle); 
    } 
    $allData = explode(',',$result); 
    $dollarValue = $allData[1]; 
    echo 'Value of $1 in Indian Rupees is Rs. '.$dollarValue; 
+0

это право? –

+0

$ url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $ from. $ to. '= X'; –

+0

@Azmatkarim Я вручную ввел URL с переменными, включенными в браузер, и он отлично работает – user3476732

ответ

1

Попробуйте это ...

Вы можете использовать JQuery Ajax для передачи значений PHP страницы и получить выход из АЯКСА успеха.

$.ajax({ 
    type: "POST", 
    url: "ajax.php", 
    data: {from:from,to:to}, 
    success: function(data){ 
alert(data); 
//you can get output form ajax.php, what you expected. 
} 
}); 

ajax.php

<?php 
    $from = $_POST['from']; 
    $to  = $_POST['to']; 
    $url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X'; 
    $handle = @fopen($url, 'r'); 
    if ($handle) { 
     $result = fgets($handle, 4096); 
     fclose($handle); 
    } 
    $allData = explode(',',$result); 
    $dollarValue = $allData[1]; 
    echo 'Value of $1 in Indian Rupees is Rs. '.$dollarValue; 

Ref: http://api.jquery.com/jquery.ajax/

0

Эквивалент Еореп в этом контексте было бы, как делать JQuery Ajax GET запрос, однако с finance.yahoo.com находится в другом домене, и их сервер не разрешает запросы на междоменные запросы, запрос GET будет ошибочным. Чтобы обойти это, вам нужно иметь скрипт PHP в том же домене и сделать запрос на это.

0

Сохранить скрипт на сервере

parse.php

<?php 


$response =array('result'=>'failed','message'=>'missing params'); 

if(isset($_GET['from']) && isset($_GET['to'])){ 
    $from = $_GET['from']; 
    $to  = $_GET['to']; 
    $url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from .'&X='. $to; 
    $handle = @fopen($url, 'r'); 
    if ($handle) { 
     $result = fgets($handle, 4096); 
     fclose($handle); 
    } 
    $allData = explode(',',$result); 
    $dollarValue = $allData[1]; 
    $response['result']=$dollarValue; 
    $response['message']="value sent"; 

} 

echo json_encode($response); 

?> 

метод JavaScript

function getData(from,to){ 

if (window.XMLHttpRequest) { // Mozilla, Safari, ... 
      xhr1 = new XMLHttpRequest(); 
     } else if (window.ActiveXObject) { // IE 8 and older 
      xhr1 = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     //path to your script 
     xhr1.open("GET", "http://localhost/practice/parse.php?from="+from+"&to="+to, true); 
     xhr1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
     xhr1.send(); 
     xhr1.onreadystatechange = display_data; 
     function display_data() { 
      if (xhr1.readyState == 4) { 
      console.log(xhr1.responseText); 
      //do what you want to do here 
      } 
} 

}