将动态参数添加到<f:link.action>

时间:2016-11-21 20:09:40

标签: jquery typo3 fluid typo3-6.2.x

  编辑:我对我的问题做了一些修改,因为我感觉我没有说清楚我想做什么 - 希望现在更有意义。

我有一份约会清单,按日期和律师分组。

我的目标: 我需要在每个律师旁边删除一个删除按钮,删除特定日期的律师的所有约会,并在显示一个用户可以插入可选信息的对话框之后向律师发送电子邮件

粗体部分之外的所有内容都已有效。

点击后,我用jQuery创建一个对话框 enter image description here
如何在对话框中获取约会信息(律师和日)?

我尝试在对话框中使用表单,看起来很好,但我仍然不知道如何在那里插入律师姓名和日期,约会不再传递给控制器​​,只有可选的{{ 1}}。

这是我在你们第一次反馈之后的尝试(不工作 - 约会没有通过控制器,我仍然不知道如何让点击律师的姓名和约会的日期出现):

msg

2 个答案:

答案 0 :(得分:2)

如果要修改或删除对象,则应使用HTTP-POST而不是GET。因此,您可以使用小表格并提交textarea。别忘了在你的&#34; deleteMultiple&#34;中提及你的领域作为一个参数。动作。

要预填填文本字段,您可以使用textfield viewhelper的value属性。 (https://fluidtypo3.org/viewhelpers/fluid/master/Form/TextareaViewHelper.html

答案 1 :(得分:1)

您应该使用<f:form action="">和内部的消息字段构建一个正确的extbase表单。

<div id="lcapp-dialog-delete-msg" class="lcapp-dialog-delete-msg">
  <f:form action="deleteMultiple" method="post" id="messageForm">
    <h2>Termine für am löschen</h2>
    <p>
        Begründung (optional)
    </p>
    <f:form.textarea id="msg" name="msg"/>
  </f:form>
</div>

然后,您可以使用action修改其jQuery参数并提交。由于删除链接的网址是使用适当的cHash构建的,因此提交表单不会有任何问题。

$('.lcapp-delete-link').click(function (ev) {
    ev.preventDefault();
    ev.stopPropagation();

    var clicked = $(this);
    var goto = clicked.attr('href');
    $('.lcapp-dialog-delete-msg').dialog({
        resizable: false,
        height: 500,
        width: 430,
        modal: true,
        buttons: {
            'Löschen und Benachrichtigen': function () {
                $('#messageForm').attr('action', goto).submit();
            },
            'Abbrechen': function () {
                $(this).dialog("close");
                $(this).dialog("destroy");
            }
        }
    });
});

PS:您可以使用原生JS来获取链接的href而不是jQuery,这将导致更好的性能:

// instead of
var goto = clicked.attr('href');
// you can use
var goto = this.href;