2011-05-09 116 views
3

我试图将一些PHP嵌入到从下拉列表中的onChange调用的javscript函数中。 javascript函数是在.js文件中,我可以通过DDL调用该函数,但是我无法获得使用php的函数...最终,我将使用DDL中选定的值访问数据库并从那里填充等领域,现在我试图让它与PHP的工作:将php嵌入到javascript中

function controllerType(){ 

     alert('outside php'); 
     <?php 
     $message = "inside php"; 
     echo "alert('$message');"; 
     ?> 

    } 

功能打印第一警报,但不叫在php警报。

+0

当您检查JavaScript时,您是否看到PHP“原样”? – alex 2011-05-09 03:57:35

回答

0

你不能在PHP中调用alert()

PHP只能回显JavaScript解释器可以解释为JavaScript的文本。

至于你发布的代码,这应该都是由JavaScript运行良好。 CodePad

1

请尝试以下

function controllerType() { 
    alert('outside php'); 
    alert('<?php echo $message; ?>'); 
} 
+0

JavaScript的观点应该没有什么不同。 – alex 2011-05-09 03:51:48

+0

我不这么认为: - \ – Atticus 2011-05-09 03:52:46

+0

现在你用javascript创建PHP代码,我认为OP的想法是用PHP创建JS代码:) – 2011-05-09 22:38:43

4

你可能web服务器默认不.js文件寻找PHP代码。您必须告诉它要么在这些文件中查找PHP,要么将文件扩展名更改为.php

如果你想尝试以前和你正在运行的Apache Web服务器,尝试添加下面一行到你的.htaccess文件:

AddHandler application/x-httpd-php .js

+0

+1这很可能是原因。 – alex 2011-05-09 03:57:08

+0

有没有办法让onChange在PHP文件中调用PHP函数? – dbo 2011-05-09 16:00:49

+0

@ user744480这是一个复杂的话题,应该发布在单独的问题中。 – Austin 2011-05-09 16:03:57

0
<?php 
    $message = "inside php"; 
?> 
<script type="text/javascript"> 
function controllerType(){ 
     alert('outside php'); 
     alert(<?=$message;?>); 
    } 
</script> 
0

我想问题可能是您的JavaScript没有被您的PHP解析器评估。 您可能必须创建该功能以.php或使用的.htaccess从而结束一个单独的文件(假设你使用Apache)告诉你的PHP处理程序来解析.js文件

0

从你下面的句子:

最终我要去使用在DDL选择的值 访问DB和 从那里填充等领域

这听起来真的像你想有PHP代码执行在运行时在浏览器内。 PHP是一种服务器端语言,你不能在你想要的JavaScript文件中简单地使用它。

您需要让javascript函数通过HTML表单或AJAX将下拉列表中的值发布到PHP页面。

如果我误解了你,请原谅我。

+0

这听起来像你明白我想要得到什么,我基本上需要页面重新显示从数据库检索基于选定的值显示信息...所以你建议我创建一个JavaScript,将选定的值发送到新的PHP页面? – dbo 2011-05-09 16:05:10

+0

这是正确的。你可以简单地通过使用window.location.href =“page.php?item =”+ ddl_value;这会将用户重定向到php页面。另一种不重新加载页面的方式是使用AJAX,查看JQuery JavaScript库,它使处理AJAX变得更容易。 – 2011-05-09 23:03:29