0

我正在尝试使用 PHP 循环使用一系列 javascript.click 函数:

$("document").ready(function()
{    


    $('#nav > li > a').click(function(){
    if ($(this).attr('class') != 'active'){
      $('#nav li ul').slideUp();
      $(this).next().slideToggle();
      $('#nav li a').removeClass('active');
      $(this).addClass('active');
    }
    else{
      $(this).next().slideToggle();
    $(this).removeClass('active');
    }
    })


<?php

        include_once '../admin/Clases/sql.php';
        $sql = new sql();

        $res = $sql->check("products","*","1");
        $javascript = "";
        if($res["ok"]){

            foreach($res["tabla"] as $fila)
            {
             $javascript .="$('#btn_".fila[2]."').click(function(){$('#prod_img').css('background-image','url(".fila[3].")');})";

            }
            echo $javascript;
        }

    ?>

但是当我运行时它不起作用。我究竟做错了什么?

4

1 回答 1

0

我相信您的 JavaScript 字符串末尾缺少分号:

$javascript .="$('#btn_".fila[2]."').click(function(){$('#prod_img').css('background-image','url(".fila[3].")');});";
// --------------------------------------------------------------------------------------------------------- HERE ^

还:

  • 你忘记了$你的$filaphp 变量
  • 您必须在 php 字符串上使用单引号,并在 js 中反转(或转义)引号。在双引号内,php 尝试评估变量——任何以开头的变量$(并猜测 jQuery 函数以什么开头……)。

所以这最终应该起作用:

$javascript .= '$("#btn_'.$fila[2].'").click(function(){$("#prod_img").css("background-image","url('.$fila[3].')");});';

然而,它丑得要命。我会通过将您的数据作为 JSON 传递给 js 来解决这个问题,而不是从 php.ini 编写 js 代码。

于 2013-01-16T19:49:16.340 回答