如何将data-id发送给action?

时间:2016-02-02 07:14:10

标签: javascript php jquery

我有这个功能:

代码 PHP:

<?php
foreach($this->pacientsInfo AS $pacient)    
                { ?>

    <button class="inmail" data-toggle="modal" data-target="#inMail" data-patient-id="<?php echo $pacient['id']; ?>"><i class="fa fa-inbox"></i><span>In-mail</span></button>

<?php

?>

此代码具有以下结果:

<button class="inmail" data-toggle="modal" data-target="#inMail" data-patient-id="191">

    在邮件   

我想要做的是在此表单上发送ID:

代码 HTML:

<div class="modal-body">
    <div id="inbox_message">
        <form method="post" action="<?php  echo $this->serverUrl().str_replace('public','',$this->basePath()).'/user/sendmessagetoinbox/'; //here I should to add data-patient-id ?>">
            <fieldset>
                <label>Subject</label>
                <input type="text" name="inbox_subject" />
            </fieldset>

            <fieldset>
                <label>Message</label>
                <textarea name="inbox_message"></textarea>
            </fieldset>

            <fieldset>
                <button type="submit" class="btn btn-primary btn-save send-btn">Send message to inbox</button>
                <!-- <input type="submit" class="btn btn-submit" value="Send message to inbox" /> -->
            </fieldset>
        </form>
    </div>
</div>

在功能sendmessagetoinbox之后,我必须传送data-patient-id

这需要jquery中的函数吗?你能告诉我一个简短的例子吗?

提前致谢!

4 个答案:

答案 0 :(得分:3)

不要求只使用<input type="hidden" value="your_id" name="patient-id" />

答案 1 :(得分:1)

尝试这样的事情:

$('.inMail').on('click', function (e) {
  var id = $(this).attr('data-target'),
     val = $(this).attr('data-patient-id');
  $('input[name="patient_id"]').remove();
  $(id).find('#inbox_message form').append('<input name="patient_id" type="hidden" value='+val+'>')
})

答案 2 :(得分:1)

你可以尝试这个,这将有助于你将变量传递给模态弹出

jsfiddle.net/Au9tc/605

答案 3 :(得分:1)

如果这是bootstrap模式弹出窗口,那么您可以在表单中添加隐藏的输入:

   <input type="hidden" value="" name="patient-id" />
</form>

然后在jQuery代码中,您可以使用show.bs.modal事件,通过event对象,您可以找到被点击的目标元素,在那里您可以获得data-patient-id并且只是将它设置在隐藏的输入中:

$('#inMail').on('show.bs.modal', function (event) {
  var pId = $(event.relatedTarget).data('patientId'); //camelCase, you have - separated data attr
  $(this).find('input[type="hidden"]').val(pId);
});

Example @ bootstrap docs