2012-07-19 86 views
0

通常在PHP中进行编辑,点击一个链接到一个单独的PHP页面,该页面具有要编辑的条目的“ID”,您将获得该ID并填充表单库在这。CodeIgniter和模式表单(填充)

我想知道如何做到这一点,如果我使用模态形式?我如何让ID获取与之关联的记录,然后填充模态表单。

有点像这个

//dropdown behavior for resp task and sub_task 
$('#r_task_id').change(function() { 
    var selected_task_id = $('#r_task_id').val(); 
    $.post("Assignment/populateSubTaskDropDown", { 'selected_task_id' : selected_task_id },//$_POST['selected_task_id'] 
      function(data){     
      $('#r_sub_task_id').empty(); 
      $.each(data, function(val, text) { 
       $('#r_sub_task_id').append(
        $('<option></option>').val(val).html(text) 
       ); 
    });}, "json"); 

});//task 

PHP代码:

$this->session->set_userdata('selected_sub_task_id', $this->input->post('selected_sub_task_id')); 
    $json_resp_user = $this->assignmentModel->getResponsibleUsers($this->session->userdata('selected_sub_task_id')); 

    $json = array(); 
    $json[0] = "-Select-"; 

    if(count($json_resp_user) >= 1){ //if there is more in the result than the -Select- 
     foreach($json_resp_user as $detail){ 
      //$json[$detail->user_id] = $detail->first_name." ".$detail->middle_name." ".$detail->last_name; 
      $json[$detail->user_id] = $detail->first_name." ".$detail->last_name; 
     } 
    } 
    echo json_encode($json); 

而且对整个形式不只是一个下拉菜单。

+0

您可以创建一个仅包含表单元素的“部分”视图。 – Gavin 2012-07-19 08:48:39

+0

你能否更具体地说明你的意思是部分观点? – rax313 2012-07-20 00:25:57

+0

局部视图,本质上是一个只包含表单和输入的视图。您现在所在的表单可以包含这个部分并使用Javascript/Ajax,您可以调用一个只返回部分表单的动作。然后你可以简单地用现有的替换它。 – Gavin 2012-07-20 08:26:46

回答

0

我的$。员额()jQuery的快速阅读,显然,这是我的意思= P

部分上的脚本

ID = ''/ /在打开模式窗口时设置此项

是我被卡在如何阅读的地方。

http://api.jquery.com/jQuery.post/

对不起,如果我不清楚,但感谢你在百忙之中回答我的时间和麻烦。

1

当你打开模式窗口设置公共JavaScript变量中的记录的id,并提交的模态形式通过URL传递ID参数。

另一种方法是在模态窗口中的窗体中放置一个隐藏变量,并在打开模态窗口的同时设置它。所以它会通过模态窗口提交的更新表单。

<script> 
    id ='' //Set this when opening the modal window 
    function appendId(myform) 
    { 
     myform.action = myform.action + "/" + id; 
     return true; 
    } 
</script> 
<div id='modalWindow'> 
    <form onsubmit='return appendId(this)'> 
     //other elements 
    </form> 
</div> 
+0

是的,但你如何将该变量传递给php并填充表单? – rax313 2012-07-20 00:25:34

+0

我已经更新了代码。请检查..你可以在窗体参数中获得id。如果您不希望将参数设置为表单中某个隐藏字段的ID,而不是更新操作。 – Nish 2012-07-20 03:21:23