【问题标题】:How to Pass PHP String Variable To JS From an Onclick Event如何从 Onclick 事件中将 PHP 字符串变量传递给 JS
【发布时间】:2011-12-14 21:12:20
【问题描述】:

这可能有一个简单的答案,但是我无法弄清楚正确的语法。我在 php 页面上回显了以下 onclick 事件:

$ratelink = text string...
echo '<div><span id="anything" onclick="updatePos('.$ratelink.')">Save</div>';

在我的 JS 页面上,我有这个功能:

function updatePos(ratelink)
{
  alert(ratelink); 
}

我的问题是当 $ratelink 是一个数字时,变量将毫无问题地通过。然而,当 $ratelink 是一个文本字符串时,就像上面的例子一样,什么都没有传递,警报也不会执行。

我认为以下 ('.$ratelink.') 需要使用不同的语法来传递文本,但我不知道确切的格式。

【问题讨论】:

    标签: php javascript function variables


    【解决方案1】:

    在传递给 JS 函数时需要将字符串用引号引起来,在 PHP 中也是如此:

    $ratelink = 'text string...';
    echo '<div><span id="anything" onclick="updatePos(\''.$ratelink.'\')">Save</div>';
    

    【讨论】:

      【解决方案2】:

      试试这个回声'<div><span id="anything" onclick=updatePos("'.$ratelink.'")>Save</div>'; 如果 $ratelink 变量中有空格,那么它应该用字符串引用......

      【讨论】:

        【解决方案3】:

        你的字符串需要用引号括起来......所以你需要让它

        echo '<div><span id="anything" onclick="updatePos(\''.$ratelink.'\')">Save</div>';
        

        如果字符串中可能包含任何引号,请确保您也将其转义

        【讨论】:

          【解决方案4】:

          两个答案都不正确。至少不是最好的选择。考虑使用json_encode() 将任何数据从 PHP 传递到 JS。这样可以确保正确转义数据。

          var myObj = <?=json_encode(array('php' => 'array'))?>;
          
          console.log(myObj);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-09-10
            • 2012-01-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多