如何在 jquery 中使用蛋糕元素?
How can I use a cake element in to jquery?
我正在使用 CakePHP 3,让我告诉你我正在尝试做的事情是使用屏幕宽度条件在 div 中显示蛋糕元素,它会抛出以下错误 Uncaught SyntaxError: Unexpected identifier
。我已经告诉过你语法没有任何变化,没有逗号,句号等。我不见了。
我需要知道的是将元素助手放在里面的正确方法 jquery 这个:<?= $ this->element('Search/Legislacion/form-search-legis') ?>
<script>
$(document).ready(function(){
var width = $(document).width(),
search_form_legis = "<?= $this->element('Search/Legislacion/form-search-legis') ?>";
// console.log(width);
if(width >= 576){
$('#searchDesktop').html(search_form_legis);
}
});
</script>
你不能直接将 HTML 转储到 JavaScript 字符串中,一旦第一个 single/double 引号出现,它就会破坏事情,因为这会关闭字符串,只是查看正在传递的页面的来源,会有这样的东西:
search_form_legis = "<form method="POST" action="/url">...";
显然这是错误的语法。
如果要将PHP的数据放入JavaScript,建议使用json_encode()
,它会将数据转换为正确的格式。
var search_form_legis = <?= json_encode(
$this->element('Search/Legislacion/form-search-legis')
) ?>;
一个字符串,就像你的情况一样,会自动被引用和转义,即你甚至不需要在它周围加上引号,它看起来像这样:
var search_form_legis = "<form method=\"POST\" action=\"/url\">...";
也就是说,如果没有充分的理由根本不输出内容,那么您可能需要考虑使用 CSS 规则来 hide/show行:
#searchDesktop {
display: none;
}
@media (min-width: 576px) {
#searchDesktop {
display: block;
}
}
我正在使用 CakePHP 3,让我告诉你我正在尝试做的事情是使用屏幕宽度条件在 div 中显示蛋糕元素,它会抛出以下错误 Uncaught SyntaxError: Unexpected identifier
。我已经告诉过你语法没有任何变化,没有逗号,句号等。我不见了。
我需要知道的是将元素助手放在里面的正确方法 jquery 这个:<?= $ this->element('Search/Legislacion/form-search-legis') ?>
<script>
$(document).ready(function(){
var width = $(document).width(),
search_form_legis = "<?= $this->element('Search/Legislacion/form-search-legis') ?>";
// console.log(width);
if(width >= 576){
$('#searchDesktop').html(search_form_legis);
}
});
</script>
你不能直接将 HTML 转储到 JavaScript 字符串中,一旦第一个 single/double 引号出现,它就会破坏事情,因为这会关闭字符串,只是查看正在传递的页面的来源,会有这样的东西:
search_form_legis = "<form method="POST" action="/url">...";
显然这是错误的语法。
如果要将PHP的数据放入JavaScript,建议使用json_encode()
,它会将数据转换为正确的格式。
var search_form_legis = <?= json_encode(
$this->element('Search/Legislacion/form-search-legis')
) ?>;
一个字符串,就像你的情况一样,会自动被引用和转义,即你甚至不需要在它周围加上引号,它看起来像这样:
var search_form_legis = "<form method=\"POST\" action=\"/url\">...";
也就是说,如果没有充分的理由根本不输出内容,那么您可能需要考虑使用 CSS 规则来 hide/show行:
#searchDesktop {
display: none;
}
@media (min-width: 576px) {
#searchDesktop {
display: block;
}
}