0

我有一个 HTML 锚标记,如下所示:

echo '<a href="javascript:tempBuy('.$res_get_price[0][0].','.$res_get_price[0][1].','.$res_get_price[0][2].','.$dt_str.')">'.$res_get_price[0][0];

而相应的javascript函数 tempBuy() 是

function tempBuy(rate,veg_name,market_name,dt)
{
      alert(dt);
}

但问题是它根本没有警报!可能我需要在tempBuy()函数的单引号内包含变量名。我试过tempBuy(\'var1'\,\'var2\'...)但它显示错误。我怎么能那样。谢谢 。

该部分的来源显示如下:

<td width="120px" class=""><a href="javascript:tempBuy(56.0,Apple,Bangalore,2013-05-18)">56.0</a>                                
                                 </td>
                                <script>
                                    function tempBuy(rate,veg_name,market_name,dt)
                                    {
                                        alert(rate);

                                    }
                                </script>
4

4 回答 4

1

您没有将 javascript 参数用引号括起来。您需要将每个变量用单引号括起来,因为您对“href”属性使用了双引号。另一件事是您没有关闭“a” HTML 标记。

echo '<a href="javascript:tempBuy(\''.$res_get_price[0][0].'\',\''.$res_get_price[0][1].'\',\''.$res_get_price[0][2].'\',\''.$dt_str.'\')">'.$res_get_price[0][0].'</a>';
于 2013-05-18T08:07:35.820 回答
1

如果您的变量中有任何不是有效的 javascript 文字的内容,您必须将其设为如下字符串:

echo '<a href="javascript:tempBuy(\''.$res_get_price[0][0].'\' ...

如果你的变量中有',你也必须用\'替换它们。

于 2013-05-18T08:07:43.417 回答
0
echo "<a href=\"javascript:tempBuy('".$res_get_price[0][0]."','".$res_get_price[0][1]."','".$res_get_price[0][2]."','".$dt_str."')\">".$res_get_price[0][0];
于 2013-05-18T18:04:19.913 回答
0

正如您从渲染输出中看到的那样,您需要引用最后 3 个非数字参数。正确的输出应该是:javascript:tempBuy(56.0,'Apple','Bangalore','2013-05-18')

更正后的 PHP 代码为:

echo '<a href="javascript:tempBuy('.$res_get_price[0][0].',\''.$res_get_price[0]`[1].'\',\''.$res_get_price[0][2].'\',\''.$dt_str.'\')">'.$res_get_price[0][0].'</a>';`
于 2013-05-18T08:11:38.807 回答