Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
流体模板:传递javascript变量作为参数值?_Javascript_Typo3_Fluid - Fatal编程技术网

流体模板:传递javascript变量作为参数值?

流体模板:传递javascript变量作为参数值?,javascript,typo3,fluid,Javascript,Typo3,Fluid,对于流体列表模板中的f:link show操作,我想向参数传递一个javascript变量,基本上是将特定对象传递给showAction的uid,但它没有按照我想要的方式工作。对于这个特殊的问题有解决方法吗 裸模板如下所示: <f:for each="{termins}" as="termin"> <tr> <td><f:link.action action="show" arguments="{termin : termin}

对于流体列表模板中的f:link show操作,我想向参数传递一个javascript变量,基本上是将特定对象传递给showAction的uid,但它没有按照我想要的方式工作。对于这个特殊的问题有解决方法吗

裸模板如下所示:

  <f:for each="{termins}" as="termin"> 
    <tr>
      <td><f:link.action action="show" arguments="{termin : termin}"> {termin.mitarbeiter}</f:link.action></td>
      <td><f:link.action action="show" arguments="{termin : termin}"> {termin.kunde}</f:link.action></td>
    </tr>
  </f:for>
</table>

JS是在流体模板之后工作的东西。正确的顺序是,将流体模板解析为HTML,然后浏览器将HTML/JS/CSS呈现给您。因此,您不能期望在流体模板中使用JS值。

您不能-您也不能读取:永远不应该从JS生成指向控制器操作的链接,因为它需要生成安全校验和。修改您创建的URL将生成安全错误。校验和的存在是为了防止DDOS,因此它有很好的理由

有两种选择:

您可以提前生成所有链接 您可以创建一个使用XHR调用的链接生成服务,以从JS生成必要的链接。
只有第一个适合您的用例。尤其是,由于您希望传递始终引用数据库中对象的UID值,这意味着您可以轻松生成指向所有可能详细视图的链接列表,然后从JS中读取/传递该链接列表以选择正确的链接。

有两种可能:

1使用表单而不是链接,并通过POST传输。使用JavaScript动态设置表单字段。这样,您的变量就不会包含在cHash校验和中


2创建一个接受变量作为参数的AJAX操作。让它生成一个有效的链接。使用POST调用变量数据。用JavaScript显示页面上的链接。

因为我的扩展将不能为公众访问,是否有可能停用安全校验和?甚至在考虑到这一点之前,你应该非常仔细地阅读这两个链接。你会打开一个真正安全的问题,它已经被固定了很多年,并且很可能被用作攻击向量。和既然您已经阅读了这些链接上的警告,并且知道了为什么不应该这样做,那么您可以在文档中查找cHashExcludedParameters,如果必须的话,还可以使用TYPO3安装工具。