javascript - 为什么带有 php var 的 JavaScript 代码不起作用?

标签 javascript php textbox

我想在使用 PHP 时更改文本框的 javascript 内容。

如果我用纯文本将其更改为:

echo "<script> var test = 0; simplemde.value('test'); 
test+= 5; alert(test);</script>";

它有效。但对于 php-Variable,它不再起作用:

echo "<script> var test = 0; simplemde.value('$markdown'); 
test+= 5; alert(test);</script>";

不知道我做错了什么。如果我打开该网站并观看源文本,它以正确的形式存在,但它不在框中。

这是我的完整代码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="./css/markdown.css">
<script src="./js/markdown.js"></script>
</head>
<body>

<textarea id="myID">
</textarea>

<script>
var simplemde = new SimpleMDE({
            element: document.getElementById("myID"),
            spellChecker: false,
            });

</script>

<?php
require_once './Michelf/Markdown.inc.php';
use \Michelf\Markdown;
require_once 'loader.php';

$json_a = load();

if(count($json_a) > 0)
{
  $text = $json_a[0]['blog'];
  echo "found";
}
else
  echo "not found";

$markdown = Markdown::defaultTransform($text);

echo $markdown;

echo "<script> var test = 0; simplemde.value('test'); test+= 5;
alert(test);</script>";
echo "<script> var test = 0; simplemde.value('$markdown'); 
test+= 5; alert(test);</script>";

?>
</body>
</html>

最佳答案

您的问题缺少的内容:

  • $markdown 的值
  • 运行 PHP 所得到的 JS
  • 浏览器的开发者工具控制台上显示的错误消息。

也就是说,我们可以做出一些假设。

Markdown 是一种文本标记语言,旨在以看起来很像纯文本的方式编写文档。它的主要功能之一是换行(用于分隔段落)。

JavaScript 字符串文本中不允许使用换行符。

(即使没有这些假设,也可以合理地说(对于用一些未指定的文本替换字符串文字的问题的任何答案):)

您需要对 $markdown 中具有特殊含义的字符进行转义或以其他方式进行编码。

最简单的方法是利用 JSON 与 JS 文字语法大致相同的优势。

$js_string = json_encode($markdown);
echo "<script> var test = 0; simplemde.value($js_string); 
      test+= 5; alert(test);</script>";

请注意,$js_string 会获取自己的引号,因此您在输出变量时无需手动包含它们。

关于javascript - 为什么带有 php var 的 JavaScript 代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37027067/

相关文章:

javascript - 谷歌地图 V3 地理编码 + 缩放

javascript - Parse 对象 ID 是否跨类唯一?

php - WHERE 或停止 LIKE 工作

php - 在 CakePHP 中创建临时表并将其作为模型加载

php - 如何在此正则表达式中只获得一个匹配项?

c# - 一个 List<TextBox> 中的多个表单-TextBox'

c++ - 如何在编辑控件上自动隐藏滚动条

javascript - 正确的函数调用礼仪?

javascript - 当 React 组件的状态发生变化时,如何将其替换为另一个组件

css - 如何在 Typescript 的文本框上创建 'glow' 效果?