我在PHP中有一个变量,我需要在我的JavaScript代码中使用它的值.如何将我的变量从PHP变为JavaScript?
我的代码看起来像这样:
<?php
...
$val = $myService->getValue(); // Makes an API and database call
?>
Run Code Online (Sandbox Code Playgroud)
我有需要的JavaScript代码,val并且看起来如下:
<script>
myPlugin.start($val); // I tried this, but it didn't work
<?php myPlugin.start($val); ?> // This didn't work either
myPlugin.start(<?=$val?> // This works sometimes, but sometimes it fails
</script>
Run Code Online (Sandbox Code Playgroud) 所以我从数据库中检索了一系列记录.数组采用格式;
$rows[0]['id']=1;
$rows[0]['title']='Abc';
$rows[0]['time_left']=200;
$rows[1]['id']=2;
$rows[1]['title']='XYZ';
$rows[1]['time_left']=300;
//And so on upto 10-20 rows
Run Code Online (Sandbox Code Playgroud)
将此数组传输到我的javascript代码的最佳方法是什么?我希望javascript能够循环遍历所有记录,并使用'id'属性,用一些信息更新带有该id的div.
我的javascript代码在外部.js文件中,但我能够在我的页面的HTML代码中执行php代码.所以我可以这样做:
在my_file.js中:
var rows=New Array();
Run Code Online (Sandbox Code Playgroud)
在HTML代码中:
<html>
<head>
<script type="text/javascript" src="js/my_file.js"></script>
<script type="text/javascript">
<? foreach ($rows as $row):?>
<? extract($row);?>
rows[<?=$id;?>]['title']="<?=$title;?>";
//And so on
<? endforeach;?>
</script>
Run Code Online (Sandbox Code Playgroud) 是否可以在javascript中使用早期PHP代码中定义的变量?
例如(在页面模板PHP文件中):
<?php
$arr = array(-34, 150);
?>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
...
var latlng = new google.maps.LatLng($arr);
...
}
</script>
Run Code Online (Sandbox Code Playgroud) 我有PHP代码,如下所示.
<?php
echo "<SCRIPT LANGUAGE='javascript'>add dd_Employee('".$id1."','".$fname1."',".$sal1.");</SCRIPT>";
echo "<SCRIPT LANGUAGE='javascript'>add dd_Employee('".$id2."','".$fname2."',".$sal2.");</SCRIPT>";
....
?>
...
Run Code Online (Sandbox Code Playgroud)
我的JavaScript代码包含
var details=new Array();
function addEmployee(id,fname,salary){
var temp=new Array(id,fname,salary);
details[details.length]=temp;
alert(temp);
}
function displayEmployee(){
for (var i=0;i<details.length;i++)
var temp_details=details[i];
//Display the id,name,sal
var id=temp_details[0];
var name=temp_details[1];
var sal=temp_details[2];
alert(id);
alert(name);
alert(sal);
}
Run Code Online (Sandbox Code Playgroud)
现在问题是PHP分配的任何内容都只会在中AddEmployee.这意味着它工作正常.但在displayEmployeePHP分配的值内部将无法正常工作.我的逻辑有什么缺陷吗?
我目前有这行代码:
displaystatus('CALLER IS: '+inCallingNum);
Run Code Online (Sandbox Code Playgroud)
用于在页面上显示消息(例如)CALLER IS:01234 567890.
我现在需要做的是在PHP变量$ user_number中设置inCallingNum变量的值.这可能吗?
我试过这样的事情,但没有任何运气:
<?php $user_number ?> = inCallingNum;
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
编辑:
这是inCallingNum设置的位置:
inCallingNum = inCallingNum.slice(inCallingNum.lastIndexOf(",")+1, inCallingNum.length);
Run Code Online (Sandbox Code Playgroud)
编辑2:
我会试着解释一下我想要做的更清楚.我目前所拥有的是2页,显示所有信息的主页和查询数据库的第2页,并提取用户的个人资料.当inCallingNum中的javascript变量发生变化时,我需要将其发送到user_data.php页面并更新信息以显示新人的个人资料.
我正在使用jQuery插件制作线图,脚本如下
<script>
var lineChartData = {
labels : ["1","2","3","4","5","6","7","8","9","10","11","12"],
datasets : [
{
fillColor : "rgba(220,220,220,0.5)",
strokeColor : "rgba(220,220,220,1)",
pointColor : "rgba(220,220,220,1)",
pointStrokeolor : "#fff",
data : [5,6,19,34,59,93,128,158,206,266,329,398,418]
},
{
fillColor : "rgba(151,187,205,0.5)",
strokeColor : "rgba(151,187,205,1)",
pointColor : "rgba(151,187,205,1)",
pointStrokeColor : "#fff",
data : [0,0,0,3,15,46,68,109,169,228,319,364,386]
}
]
}
var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Line(lineChartData);
Run Code Online (Sandbox Code Playgroud)
我想将变量插入到var的数据部分中,例如
data : [$q1,$q2,$q3, etc, etc]
Run Code Online (Sandbox Code Playgroud)
我不知道javascript所以我不知道从哪里开始.我该怎么做?
我将变量放在一个单独的文件中并将其包含在此文件中.