0

我有一个 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>

谢谢

4

2 回答 2

4

您的 PHP 代码正在生成直接进入 Javascript 上下文的文本,这意味着您必须生成 VALID javascript 代码。就目前而言,您的代码将产生

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

这是一个彻底的 javascript 语法错误。永远不要直接将 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';

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

于 2013-09-09T20:12:08.063 回答
2

你有拼写错误的returnscript

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

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

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

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

于 2013-09-09T20:03:57.767 回答