0

我花了很长时间弄清楚如何解决我的问题,但没有找到任何与我的确切问题相匹配的解决方案。我的环境是一个用 cakephp 1.3.13 编写的业务应用程序,我不能轻易升级到 2.x。

我想实现一些javascript功能:

我正在考虑在提交常规帖子表单之前弹出一个模式对话框表单。模态对话框应从用户那里收集并保存更多数据。

具体情况是:

对于employee_project 模型,我有一个基于HTTP-POST 的常规编辑表单。在此表单中,您可以通过提交表单来更改某些值、设置某些状态并更新记录。

<div id="editEmployeesProjectForm">
<?php 
    echo $form->create('EmployeesProject', array('action' => 'updateEmployeesProject'));
    echo $form->input('id', array('type' => 'hidden', 'value' => $e['EmployeesProject']['id']));
    echo $form->input('user_id', array('label' => '', 'options' => $userList, 'selected' => $selected));
    echo $form->input('state', array('options' => $states, 'label' => '', 'selected' => $selection));
    echo $form->submit('update');
?>
</div>

如果在下拉列表中选择了定义的状态,我想触发此表单的提交事件。将弹出一个模式对话框以收集有关用户选择的一些附加信息。该模态框应有自己的提交表单以创建“统计日志”记录。modal-form保存完成后,钩子提交动作就可以正常处理了。

我找到了一些使用 jQuery 对话框功能实现此目的的方法,使用 modal:true。由于我对 javascript 和 jQuery 都没有太多经验,所以我在 cakephp 1.3.x 中搜索 jquery 助手,支持 jquery/jqueryUI 的实际版本和功能,但它似乎只存在于 cakephp 2.x 中。

我已经研究了cakePHP 1.3 的 JsHelper,但它确实只支持非常有限的 jquery 功能。

那么现在有人如何在 cakePHP 1.3 环境中轻松实现这一点?我不限于 jquery,如果有另一种直接的方式来做到这一点。

我很高兴收到所有解决我问题的建议。提前致谢!

4

1 回答 1

0

您可以做的是制作表单,将其隐藏,然后使用 javascript 取消隐藏并根据某些选项将其放在用户面前。

示例: 鉴于:

    <?php echo $this->Form->input('user_input'); ?>

    <div id="popopen" class="footer_scrolling" style="display:none">
         <?php echo $this->Form->input('test'); ?>
         <?php echo $this->Form->submit(); ?>
    </div>
<input type="submit" value="Submit" onclick = "return toggle_display()">

Javascript:

function toggle_display()
{
popup = document.getElementById("popopen");
user_value = document.getElementById("user_input");
if(user_value.value = 1)
{
     popup.style.display= "block";
     return false;
} else {
     return true;
}
}

在 CSS 中(将使它在底部以疯狂的颜色出现):

    .footer_scrolling
{
    border:2px solid #404D81;
    height: 35px;
    padding-top: 10px;
    width: 61%;
    margin: 0 auto; 
    position:fixed; left:25.67%; bottom:0px;
    background-color:#FCDD4B;
}
于 2013-09-12T14:03:06.780 回答