CAKEPHP确认提交

时间:2014-02-05 19:42:28

标签: forms cakephp

我的表单中有一个提交按钮:

<?php echo $this->Form->end(__('Submit')); ?>

我希望嵌入作为输入表单一部分的变量。

例如,我想嵌入一个在此输入$this->Form->input('user_id');的变量。

有谁知道怎么做?我目前将这个onsubmit作为options数组的一部分,但是当我尝试嵌入变量时会抛出错误。

<?php echo $this->Form->create('Shift', array(
    'onsubmit' => 'return confirm("Creating shift for '$id' on ");'
)); ?>

现在正在编辑此问题。所以Javascript解决方案运行良好。现在的问题是我希望警告框显示用户的名字,这是显示在保管箱中的名称。但是,HTML标记包含用户的ID。这是HTML

<div class="input select required">
    <label for="my_user_id">User</label>
    <select name="data[Shift][user_id]" id="my_user_id" required="required">
    <option value="1">john doe</option>
    <option value="2">john johnson</option>

有没有办法使用Javascript访问<option>代码之间的值?

2 个答案:

答案 0 :(得分:4)

您需要使用双引号:

<?php 
echo $this->Form->create('Shift', array(
    'onsubmit' => "return confirm(\"Creating shift for '$id' on \");"
));
?>

另一种选择是使用$this->Form->postLink()并设置$ confirmMessage参数,如果它是一个简单的状态转换形式。

答案 1 :(得分:2)

您可以使用JQuery

echo $this->Form->create('Shift', array('id' => 'myform'));
echo $this->Form->input('user_id', array('id' => 'my_user_id', 'type'=>'text'));

表格后:

<?php echo $this->Html->scriptBlock('
$(document).ready(function() {
    $("#myform").submit(function(event) {
      alert("Creating shift for " + $("#my_user_id").val());
    });
});
');
?>