基本上,我有解决方案,但我想知道它是否可以(应该?)以其他方式做得更好。
我有一个表,我在PHP中用MYSQL创建值。表中的每个项目都有多个值。在每一行中都有单链接,点击此链接会激活jQuery功能。在每个链接中,还有VALUE属性,其中包含来自多个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('&&');
});
脚本在&amp;&amp;和&amp;&amp;&amp;并使用值创建一个数组myData:
myData [0] =&gt;从PHP中的$ l-&gt; _data1传递的值
myData [1] =&gt;从PHP中的$ l-&gt; _data2传递的值
这是正确的方法吗?
答案 0 :(得分:1)
没关系,只要你永远不会有&amp;&amp;在你的数据中。您可以在PHP中使用json_encode()
,然后将其解码为JavaScript中的数组。那将是一个更标准的解决方案。
答案 1 :(得分:0)
我建议不要使用看起来像布尔AND的&&
。相反,我可能会使用类似管道的东西来分隔它们val1|val2
。
我认为你最好将整个连接的字符串传递给PHP并将其拆分。它可以节省您在两端的工作,必须将两个结果值放入正确的帖子或获取变量以发送给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']);
}