2013-09-30 131 views
0

我需要知道如何通过jquery保持每个动态创建的下拉列表的状态。动态下拉jQuery和PHP

我的情况是这样的,我有一个选项,用户选择一个日期,并基于选定的日期下拉生成。可以说用户生成了2个数据,而下面的2个下拉是在jQuery的帮助下动态生成的。

<select id="dd1"> 
    <option value="option1">option 1</option> 
    <option value="option2">option 2</option> 
    <option value="option3">option 3</option> 
</select> 

<select id="dd2"> 
    <option value="option5">option 5</option> 
    <option value="option8">option 8</option> 
    <option value="option9">option 9</option> 
</select> 

我担心的是,因为这些都是dyamically创建的,我需要保持相同时,表单提交与erros。所以我已经完成了这部分,但我不明白如何获取之前选择的值当表单/页面提交有错误

例如,在DD,如果用户已经选择选项1并且当所述形式与误差修改提交它应产生相同的下拉列表并选择它的最后选择的值,该值是用于DD1 选项1

任何快速回复是高度赞赏。它现在是一家商店。

我的yii代码如下所示。

<?php echo CHtml::activeLabelEx($cssAtapsClient, 'outgoing_call_dates'); ?> 

并且在其中设置了上面的文本框的值,并加载动态下拉菜单中所强调的一个弹出的压延机。

enter image description here

每个动态添加下拉具有如下面的命名约定。 (选择名称= 'CSSAtapsClient [client_time_window] [0]')

CSSAtapsClient[client_time_window][0] 
CSSAtapsClient[client_time_window][1] 
CSSAtapsClient[client_time_window][2] 
CSSAtapsClient[client_time_window][3] 

想知道如何将数据经由PHP保存?

回答

1

你可以保存这些选择的选项插入表格一些临时变量提交事件,如果一切正常,你可以清除它们在成功处理程序如果没有,只是选择错误处理这些选项。

var firstOption; 
var secondOption 
$("#form").submit(function() { 
    firstOption = //your first selection; 
    secondOption = //your second selection; 
    $.ajax({ 
    type: "POST", 
     url: //your url, 
     data: $(this).serialize(), 
     success: function() { 
     // callback code here 
     firstOption = null; 
     secondSelection = null; 
     }, 
     error: function(){ 
     //set your options states from your variables 
     } 
    }); 
    }); 

你也可以保存这些生成的下拉框内容:

var firstDDcontent =$('#firstDropdown').html() 

所以,你可以在以后恢复它。

+0

TNX但如何处理它没有Ajax?在这种情况下使用ajax是否是最佳做法? – dev1234

+1

那么AJAX是对付那些那种情况下我的首选方式。有几个介绍Ajax的优点和缺点,所以如果它适合你在这个特殊的情况下,你可以决定的文章。你可以了解其中的一些在这里:http://www.jtechniques.com/web/ajax/disadvantages-with-AJAX –