2013-05-10 71 views
0

我有一个网站在线测试和编辑使用“000webhost.com”有PHP和MySQL。JavaScript不拉动PHP变量,页面不加载PHP?

要么javascript不拉动PHP变量,要么站点不加载php。

当我加载页面我启动了铬代码查看器来检查代码的生活。当查看default.php(索引页)时,它不显示我的php变量。

的Javascript

window.onload = function(){ 
var iso = "<?= $isop; ?>"; 
var meg = "<?= $megp; ?>"; 
var mex = "<?= $mexp; ?>"; 
var mor = "<?= $morp; ?>"; 
var noc = "<?= $nocp; ?>"; 
var pye = "<?= $pyep; ?>"; 
var tri = "<?= $trip; ?>"; 
var zyd = "<?= $zydp; ?>"; 
} 

PHP页面

<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Str8nge Brew Calculator</title> 
</head> 
<body> 
<?php 
$isop = "1"; 
$megp = "1"; 
$mexp = "1"; 
$morp = "1"; 
$nocp = "1"; 
$pyep = "1"; 
$trip = "1"; 
$zydp = "1"; 
?> 
<script type="text/javascript" src="calceve.js"></script> 
<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
.... 
</body> 
+0

您的PHP配置是否启用了短打开标记?您的Javascript是在PHP脚本(.php)还是在.js文件中? – 2013-05-10 20:37:31

+0

呈现的HTML看起来像什么?另外,'iso'只会局限于'window'的'onload'回调,所以你不能在其他地方使用它。 – Blender 2013-05-10 20:37:58

+0

其中是window.onload代码?在calceve.js中? – rivarolle 2013-05-10 20:38:38

回答

2

如果你希望你的calceve.js文件渲染包含在PHP中,你需要改变文件扩展名.PHP,src="calceve.php" 。每当我有一个包含PHP的JavaScript文件时,我就会使用类似myfile.js.php的东西,只是为了让它直接在我脑海中的文件实际是什么。

+0

为什么选择投票? – Robbert 2013-05-10 20:40:12

+1

由于PHP页面中定义的局部变量在(PHP生成的)JavaScript中不可用,因此仍然无法工作。这些由两个完全独立的HTTP请求生成,并且它们中的任何一个都可能随时被缓存。唯一可靠的方法是**内联**将PHP变量拉入JS页面本身内部的JS变量*的JavaScript代码。 – 2013-05-10 20:46:59

+2

这不会解决问题。 PHP变量不会从一个脚本继承到另一个脚本,所以当他加载'calceve.php'时,所有这些变量都不会被填充。 – Barmar 2013-05-10 20:47:26

0

我修正了所有的javascript代码,并将其移动到php页面的标签内。不知道为什么这会修正它,但它的工作原理。我也移动了window.onload,因此var是第一个