将php变量作为参数传递给javascript

将php变量作为参数传递给javascript,php,javascript,ajax,Php,Javascript,Ajax,我试图调用一个javascript函数,其中一个参数是从下拉框中获取的变量。如果仅使用“This.value”从当前下拉框中传递值,则此脚本工作正常,但是当尝试传递变量时,代码不起作用。当我使用echo语句时,从下拉框中的值正确填充变量。我认为问题在于实际将变量传递给javascript函数。函数showSection(q,r)永远不会被调用,因为write语句永远不会执行。任何帮助都将不胜感激。这是我的php和javascript代码 echo "<select name=\"cours

我试图调用一个javascript函数,其中一个参数是从下拉框中获取的变量。如果仅使用“This.value”从当前下拉框中传递值,则此脚本工作正常,但是当尝试传递变量时,代码不起作用。当我使用echo语句时,从下拉框中的值正确填充变量。我认为问题在于实际将变量传递给javascript函数。函数showSection(q,r)永远不会被调用,因为write语句永远不会执行。任何帮助都将不胜感激。这是我的php和javascript代码

echo "<select name=\"course\" onchange=\"showSection($q, this.value)\">";
echo”“;

如果$q或this.value是字符串值,则必须在引号内传递

echo "<select name='course' onchange='showSection(\"$q\", \"this.value\")'>";
echo”“;

您需要确保插入
$q
的值不会产生javascript语法错误。这样做的合理方法是在价值上使用

之后,您需要确保在该值中转义单引号和双引号,以保持html的正确性。是用来做这个的。在我看来,总是转换单引号和双引号(
entu quotes
)是最好的选择

最终的结果是(我在这里使用herdoc语法,因为我发现它更可读):

$escape=htmlspecialchars(json_encode($q),ENT_引号);

回送一堵代码墙并不是一个很好的问候语。这个PHP代码只是请求被注入MySQL。这就是问题所在。将变量传递给函数的语法是什么,无论我尝试以何种方式将变量传递给函数,它都不起作用。它仅在使用此值传递一个变量时有效。值不是存储的变量请尝试在浏览器中检查生成的标记,并查看其是否正确。此外,检查HTTP通信量,看看服务器是否返回正确的响应。前两个下拉框出现,调用第三个文件的函数由于传递的参数出现问题而从未被调用
$escaped = htmlspecialchars(json_encode($q), ENT_QUOTES);
echo <<<HTML
<select name="course" onchange="showSection($escaped, this.value);">
HTML;