我需要一些帮助,我试图将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');
?>
任何建议都表示赞赏,就像我在这个黑暗中说的那样。
答案 0 :(得分: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");
?>
答案 1 :(得分:1)
扩展贾什万特所说的......
PHP是一种服务器端语言,可以在幕后工作。 Javascript是客户端,它在本地客户端的计算机上运行并执行代码(即通过浏览器)。
然而,您可以使用AJAX(异步JavaScript和XML),以便本地客户端将HTTP请求发送到服务器,而无需重新加载当前页面。例如,您可以使用AJAX将变量的内容发送到服务器。
为了便于使用,您应该查看jQuery关于ajax调用的方法。请参阅:http://api.jquery.com/jQuery.ajax/
希望它运作良好。
答案 2 :(得分:1)
继续你如何使用jquerys post()然后返回json,你可以构建你想要在php部分输出的结果,或者你可以使用jquery循环遍历每个()到结果。
<?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>