Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么带有php变量的javascript代码不是';不行吗?_Javascript_Php_Textbox - Fatal编程技术网

为什么带有php变量的javascript代码不是';不行吗?

为什么带有php变量的javascript代码不是';不行吗?,javascript,php,textbox,Javascript,Php,Textbox,我想在使用PHP时更改文本框的javascript内容 如果我用纯文本将其更改为: echo "<script> var test = 0; simplemde.value('test'); test+= 5; alert(test);</script>"; echo“var test=0;simplemde.value('test'); 测试+=5;警报(测试);“; 它起作用了。但对于php变量,它不再工作: echo "<script> var t

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

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

echo "<script> var test = 0; simplemde.value('test'); 
test+= 5; alert(test);</script>";
echo“var test=0;simplemde.value('test');
测试+=5;警报(测试);“;
它起作用了。但对于php变量,它不再工作:

echo "<script> var test = 0; simplemde.value('$markdown'); 
test+= 5; alert(test);</script>";
echo“var test=0;simplemde.value(“$markdown”);
测试+=5;警报(测试);“;
不知道我做错了什么。如果我打开站点并查看源文本,它会以正确的形式出现在那里,但它不在框中

这是我的全部代码:

<?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>

var simplemde=新simplemde({
元素:document.getElementById(“myID”),
拼写检查:错,
});

您的问题缺少的内容:

  • $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\u string=json\u encode($markdown);
echo“var test=0;simpleMode.value($js_字符串);
测试+=5;警报(测试);“;

请注意,
$js_string
本身有引号,因此在输出变量时不需要手动包含引号。

您的问题缺少的内容:

  • $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\u string=json\u encode($markdown);
echo“var test=0;simpleMode.value($js_字符串);
测试+=5;警报(测试);“;

请注意,
$js_string
获取自己的引号,因此在输出变量时不需要手动包含引号。

开始调试。。。控制台有错误吗?您的
脚本
是否按您希望的方式呈现?您收到
警报
两次还是一次?@missjohanna访问页面并查看源代码中的JavaScript代码code@Rayon我的语法错误:意外标记非法。@jekaby没有。Sry我没说我只是在使用纯文本时得到它。开始调试。。。控制台有错误吗?您的
脚本
是否按您希望的方式呈现?您收到
警报
两次还是一次?@missjohanna访问页面并查看源代码中的JavaScript代码code@Rayon我的语法错误:意外标记非法。@jekaby没有。Sry我没有说我只是在使用纯文本时得到它;我们需要确保
\u2028
\u2029
/
也在字符串中转义
json_encode默认情况下可以正确执行此操作,但您可以通过添加标志或使用不同编码器(包括EcmaScript
json)编码的json字符串来错误地执行此操作。stringify
@AnttiHaapala-json_encode默认情况下会转义所有这些,但并非所有json都可以安全嵌入;我们需要确保
\u2028
\u2029
/
也在字符串中转义
json_encode默认情况下可以正确执行此操作,但通过添加标志或使用使用不同编码器(包括EcmaScript
json)编码的json字符串,可以错误地执行此操作。stringify
@AnttiHaapala-json_encode默认情况下会转义所有这些代码