Php 在DRUPAL中通过url传递变量

Php 在DRUPAL中通过url传递变量,php,drupal,drupal-6,Php,Drupal,Drupal 6,每当我尝试使用l()函数通过url传递变量时,如下所示: l(t($row['salon_name']),'admin/content/edit-salons-products-services?sid='.$row[salon_id] ); ??被“%3F”替换 =被“%3D”替换 为什么会发生这种情况?我如何修复它?将其更改为:'admin/content/edit salons products services/$row[salon\u id] 您可以使用arg(3)访问沙龙id 您可

每当我尝试使用
l()
函数通过url传递变量时,如下所示:

l(t($row['salon_name']),'admin/content/edit-salons-products-services?sid='.$row[salon_id] );
??被“%3F”替换

=被“%3D”替换


为什么会发生这种情况?我如何修复它?

将其更改为:
'admin/content/edit salons products services/$row[salon\u id]

您可以使用
arg(3)
访问沙龙id


您可能还需要更改模块的菜单声明以允许使用此URL。

正如Finbarr所说,通常最好将变量作为路径组件传递,而不是查询参数,但查询参数仍然可以使用l()

查询参数被传递到$options参数中基本$path之外的l()中。这使得以编程方式更改查询值变得更容易,而无需解析字符串。你想要的是这样的:

l(t($row['salon_name']),'admin/content/edit-salons-products-services', array('query' => array('side' => $row['salon_id'])));

这是经过设计和必要的,它被称为URL编码。为什么会有问题?这个问题基本上是重复的,只是一个开始。谢谢你finbarr,所以我问你第二个问题:如何在drupal fapi中默认检查deme checboxescheckboxes@Mamadou如果你有一个单独的问题,你应该创建一个新问题,而不是在这个问题中提问,因为这个问题是重复的,我只是想把大致相同的答案联系起来:这绝对是最好的方法。