当整个代码都在引号中时,如何在引号中使用变量

64jmpszr  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(375)

我对此有点激动。这就是我的意思。

<div class='pagination-container'>
    <nav>
        <ul class="pagination">

            <li data-page="prev">
                <span>
                    < 
                <span class="sr-only">(current)
                </span></span>
            </li>
            <!--    Here the JS Function Will Add the Rows -->
            <li data-page="next" id="prev">
                <span> > <span class="sr-only">(current)</span></span>
            </li>
        </ul>
    </nav>
</div>

<?php 
$jquery = '
for (var i = 1; i <= pagenum;) {  
    $(".pagination #prev").before("<li data-page= \' i \' ><span> \' i++ \' <span class=\'sr-only\'>(current)</span></span>\</li>").show();
} 
'; 
$this->registerJs($jquery, View::POS_READY);
?>

这里,整个jquery代码都在一个带引号的php变量中。jquery forloop变量“i”实际上并没有得到它作为文本iteself i得到的列表。因此循环无法正常工作。我在这里尝试了一些引号的组合,比如“等等,但没有成功
当做

hyrbngr7

hyrbngr71#

由于在php字符串中使用双引号和单引号,因此最简单的方法是使用不同的字符串类型。
既然你有 $ 在字符串中签名,我会选择nowdoc,因为它不会解析内容来替换变量。
对于javascript字符串中的变量替换,可以使用带有backtick语法的模板文本
您的示例将以如下方式结束:

<div class='pagination-container'>
    <nav>
        <ul class="pagination">
            <li data-page="prev">
                <span class="sr-only">(current)</span>
            </li>
            <!--    Here the JS Function Will Add the Rows -->
            <li data-page="next" id="prev">
                <span class="sr-only">(current)</span>
            </li>
        </ul>
    </nav>
</div>
<?php 
$jquery = <<<'JQUERY'
for (var i = 1; i <= pagenum;) {
  $(".pagination #prev").before(`<li data-page="${i}"><span>${i++}</span><span class="sr-only">(current)</span></li>`).show();
} 
JQUERY; 
$this->registerJs($jquery, View::POS_READY);
?>

相关问题