我有一个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>
由于
答案 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
可用。