基本上,我对此有一个有效的解决方案,但我想知道它是否可以(应该吗?)以其他方式做得更好。
我有一个用PHP创建的表,其中包含来自MYSQL的值。表中的每一项都有多个值。每一行都有一个链接,单击此链接将启动jQuery函数。在每个链接中,还有一个值属性,其中包含来自多个MYSQL字段的值,并使用&&进行连接:
PHP代码是:
foreach ($this->_data as $l)
{
?>
...
<td><a href="#" class="clickMe" value="<?php echo $l->data1 . '&&' . $l->data2; ?>">Link</a></td>
...
<?php
}点击链接时要触发的jQuery函数是:
$(".clickMe").click(function() {
myData = $(this).attr('value').split('&&');
});脚本在&&上拆分VALUE属性中的字符串,并创建一个具有值的数组myData:
从$l->_ =>传递的PHPdata1值
从$l->_ =>传递的PHPdata2值
这是正确的做法吗?
发布于 2012-02-16 21:48:04
这很好,只要你的数据中永远不会有&&。您可以在PHP中使用json_encode(),然后在JavaScript中将其解码为数组。这将是一个更标准的解决方案。
发布于 2012-02-16 21:48:45
我建议不要使用&&,因为它看起来像是一个布尔AND。相反,我可能会使用管道之类的东西来分隔它们val1|val2。
我认为您最好将整个连接的字符串传递给PHP,然后在那里拆分它。它省去了将两个结果值放入适当的post或get变量以发送到PHP的两端工作。
然后在PHP方面,在拆分一个值之前验证它的格式会更容易一些,因为您可以使用一个正则表达式,如下所示:
// Validate both values at once: 1 or more digits, a pipe, and one or more digits
if (preg_match('/^(\d+)\|(\d+)$/', $_POST['jqueryinput'])) {
// explode() and use in PHP...
list($val1, $val2) = explode("|", $_POST['jqueryinput']);
}https://stackoverflow.com/questions/9312383
复制相似问题