如何在jquery函数中使用php?

时间:2016-09-21 08:37:50

标签: php jquery

使用我的代码,我可以点击更改我的文字:



$('.SeeMore').click(function(){
		var $this = $(this);
		$this.toggleClass('SeeMore');
		if($this.hasClass('SeeMore')){
			$this.text('+ more');			
		} else {
			$this.text('- less');
		}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="SeeMore" style="cursor:pointer">+ more</li>
&#13;
&#13;
&#13;

到目前为止这种方法运作良好。但因为我的页面有不同的语言版本,我想用php交换单词:

   <script> 
       $('.SeeMore').click(function(){

        var more = <?php echo $lang['MORE']; ?>
        var less = <?php echo $lang['LESS']; ?>
        var $this = $(this);
        $this.toggleClass('SeeMore');
        if($this.hasClass('SeeMore')){
            $this.text(more);           
        } else {
            $this.text(less);
        }
    });</script>   

不幸的是现在我的代码不再工作了,我不知道为什么。

5 个答案:

答案 0 :(得分:2)

你错过了两件事 -

 1. Semi-colon at the end of the statement.
 2. Double / single quotation around the PHP statement inside the jQuery.

您需要使用"例如: var more = "<?php echo $lang['MORE']; ?>";

答案 1 :(得分:1)

你忘记了分号和引号:

var more = "<?php echo $lang['MORE']; ?>";
var less = "<?php echo $lang['LESS']; ?>";
编写代码生成代码很难并且可能令人困惑。更好地使用一个像样的模板系统(例如Smarty)。

答案 2 :(得分:1)

您忘记了引号:

var more = "<?php echo $lang['MORE']; ?>";
var less = "<?php echo $lang['LESS']; ?>";

答案 3 :(得分:1)

使用数据属性

HTML:

<li class="SeeMore" data-less="<?php echo $lang['LESS']; ?>" data-more="<?php echo $lang['MORE']; ?>" style="cursor:pointer">+ more</li>

JS:

   $('.SeeMore').click(function(){

        var more = $(this).attr('data-more');
        var less = $(this).attr('data-less');
        var $this = $(this);
        $this.toggleClass('SeeMore');
        if($this.hasClass('SeeMore')){
            $this.text(more);           
        } else {
            $this.text(less);
        }
    });

PS:不要忘记在文档就绪声明中包装click事件

答案 4 :(得分:1)

您可以在jquery中使用以下代码使用php变量:

token = "<?php echo $_SESSION['token']; ?>"