0

我在 MySQL PHP 上工作

while($row = mysqli_fetch_array($result))
 {
  echo "<a href=javascript:click('$row[Name]')>".$row['Name']."</a>";
  echo "<br><br><br>";
 }

但结果是:

<a href="javascript:click('Slow" cooker="" pepper="" steak')="">Slow Cooker Pepper Steak</a>

javascript

clikc(name)
{
alert("test");
}

什么是错误。

4

3 回答 3

1

您需要引用您的href值,并且应该为要输出的媒体对数据进行编码,以防您的数据包含可能破坏您的 html 或 javascript 的字符。

所以你可以使用类似的东西:

echo "<a href=\"javascript:click(" . htmlspecialchars(json_encode($row['Name']))) . ");\">"
     . htmlspecialchars($row['Name']) . "</a>";
于 2013-08-04T09:08:54.173 回答
0

你的连接有问题。尝试这个:

 echo "<a href=javascript:click('".$row['Name']."')>".$row['Name']."</a>";

并且clikc(name)必须是click(name)

于 2013-08-04T09:04:19.937 回答
0

如果你打算像这样使用 vars,你应该转义它们

版本 1:

echo "<a href=\"javascript:click('".addslashes($row['Name'])."');\">".$row['Name']."</a>";

版本 2,更清洁:

$value = addslashes($row['Name']);
echo <<<EOD
<a href="#" onclick="click('{$value}');return false;">{$row['Name']}</a>
EOD;

版本 3,清洁 js 也:

一)PHP:

$value = addslashes($row['Name']);
echo <<<EOD
<a href="#" class='js-clicky' data-value="{$value}">{$row['Name']}</a>
EOD;

b) html,使用 jQuery

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$('.js-clicky').click(function(){
    alert($(this).data('value');
})
</script>

在这里阅读:

heredoc:http ://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

添加斜杠:http : //php.net/manual/en/function.addslashes.php

jQuery:http: //jquery.com/

于 2013-08-04T09:17:24.247 回答