4

我需要一点帮助,我试图将 js 变量分页到使用 file_get_contents 在 php 中解析的 url。我不知道从哪里开始这样做。

<script type="text/javascript">
var js_variable = appl+goog+fb+mfst+nflx;
</script>

<?php
$ticker = js_varable_here;
$file = file_get_contents('http://finance.yahoo.com/d/quotes.csv?s=$ticker&f=soac1p2ghjkj1re');

?>

任何建议都会受到赞赏,就像我说的那样,我对此一无所知。

4

3 回答 3

2

这是一个使用 jquery 的示例。

Javascript:

<script type="text/javascript">
  var js_variable = appl+goog+fb+mfst+nflx;
  $.post("/somephp.php", {ticker: js_variable}, function(data) {
    // returned from php
  });
</script>

PHP:

 <?php
   $ticker = $_POST['ticker'];
   $file = file_get_contents("http://finance.yahoo.com/d/quotes.csv?s=$ticker&f=soac1p2ghjkj1re");
 ?>
于 2012-05-25T22:11:05.827 回答
1

扩展Jashwant所说的......

PHP 是一种服务器端语言,它确实在幕后工作。Javascript 是客户端,它在本地客户端机器上运行和执行代码(即通过浏览器)。

但是,您可以使用 AJAX(异步 JavaScript 和 XML),以便本地客户端向服务器发送 HTTP 请求,而无需重新加载当前页面。例如,您可以使用 AJAX 将变量的内容发送到服务器。

为了更容易使用,您应该查看 jQuery 的有关 ajax 调用的方法。见:http ://api.jquery.com/jQuery.ajax/

希望它运作良好。

于 2012-05-25T22:08:33.203 回答
1

下面是如何使用 jquery post() 然后返回 json,您可以构建结果,因为您希望在 php 部分中输出,或者您可以使用 jquery 在结果中循环使用 each()。

<?php
if($_SERVER['REQUEST_METHOD']=='POST'
   && isset($_SERVER['HTTP_X_REQUESTED_WITH'])
   && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){

    if(!empty($_POST['s'])){

        $ticker = $_POST['s'];
        $file = file_get_contents('http://finance.yahoo.com/d/quotes.csv?s='.$ticker.'&f=soac1p2ghjkj1re');

        header('Content-Type: application/json');
        echo json_encode(array('result'=>$file));
    }else{
        echo 'Request not allowed!';
    }
    die;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" charset="utf-8"></script>
<script>
var js_variable = "appl+goog+fb+mfst+nflx";

$.post('this_script.php',{s: js_variable}, function(data) {
  $('#divResult').replaceWith('<div id="divResult">'+ data.result +'<div>');
});
</script>
</head>
<body>

<div id="divResult"><div>
</body>
</html>
于 2012-05-25T22:41:21.767 回答