使PHP函数的返回值等于javascript变量?

时间:2013-09-09 20:02:12

标签: php jquery

我有一个php函数,它从数据库中提取数据并返回html代码,这是一个下拉菜单的代码。我需要做的是使用jQuery将此下拉菜单附加到div。我遇到的问题是如何将php的返回值分配给jQuery变量?

function returnUserNames(){
//open connection to the database

return 'this an html code that should be returned by this function';

}

我尝试过以下但是没有用。

<script>
var menu = <?php echo returnUserNames() ?>;
$('#show_menu').append(menu);
</script>

由于

2 个答案:

答案 0 :(得分:4)

您的PHP代码生成的文本直接进入Javascript上下文,这意味着您必须生成有效的JavaScript代码。就目前而言,您的代码将生成

var menu = this an html code that should be returned by this function;

这是一个彻头彻尾的JavaScript语法错误。从不 EVER 直接将PHP中的文本输出到像这样的javascript上下文中。始终使用json_encode()来确保您输出的内容在语法上有效Javascript,例如:

var menu = <?php echo json_encode(returnUserNames()) ?>;
                      ^^^^^^^^^^^^

将产生:

var menu = 'this an html code that should be returned by this function';

请注意'引号是如何自动添加的。

答案 1 :(得分:2)

您有拼错返回脚本

var menu = <?php echo returnUserNames() ?>;

整个php脚本也需要用引号括起来:

var menu = "<?php echo returnUserNames() ?>";

在加载页面之前,您的jQuery脚本不应运行,并且#show_menu可用。