代码之家  ›  专栏  ›  技术社区  ›  daihovey

javascript onclick()问题中有多个php变量

  •  0
  • daihovey  · 技术社区  · 15 年前

    我有以下PHP代码

    $bigImageSrc = 'images/'.$prodXML->bottles->bottle[$i]->bigImage;
    $text = $prodXML->bottles->bottle[$i]->title;
    $title = $prodXML->bottles->bottle[$i]->text;    
    echo "<a href=javascript:void(0); onClick=showProduct('$bigImageSrc', '$text', '$title');>
    

    但我得到了这个错误:

    语法错误
    showproduct('images/image1.jpg',

    它只适用于showproduct函数中的一个var。

    知道我哪里出错了吗?

    3 回复  |  直到 15 年前
        1
  •  6
  •   thomasrutter    15 年前
    <a href=javascript:void(0); onClick=showProduct('$bigImageSrc', '$text', '$title');>
    

    onclick属性周围没有引号,这意味着后面的空格 '$bigImageSrc', 被解释为该属性值的结尾。

    您应该将HTML中的每个属性用引号括起来,以防止出现很多问题。

    如。

    echo "<a href=\"javascript:void(0);\" onClick=\"showProduct('$bigImageSrc', '$text', '$title');\">";
    

    您也不应该使用javascript:void(0);作为一个href属性,当禁用javascript或有人试图在该链接上“在新窗口中打开”、“书签”、“在新选项卡中打开”等时,它会断开。但这是另外一个问题。

        2
  •  1
  •   Kurt Du Bois    15 年前

    您的HTML链接打印出来时没有引号。虽然我不知道这是否适用于所有浏览器,但无论如何使用它们可能是个好主意。

        3
  •  0
  •   Mark Snidovich    15 年前

    使用这样的行要容易得多,如果您不使用回音,而是退出PHP模式。那么你就不用担心不同种类的报价了。

    $bigImageSrc = 'images/'.$prodXML->bottles->bottle[$i]->bigImage;
    $text = $prodXML->bottles->bottle[$i]->title;
    $title = $prodXML->bottles->bottle[$i]->text;    
    ?>
    <a href="javascript:void(0);" onClick="showProduct('$bigImageSrc', '$text', '$title')"
    

    更好的是,不要用onclick。使用AttachEvent/AddEventHandler分配事件处理程序( http://www.quirksmode.org/js/events_advanced.html )或类似jquery bind/。单击。这么简单多了。

    推荐文章