将下拉框设置为在Javascript中选择

时间:2009-12-07 06:49:09

标签: javascript

我在我的应用中使用Javascript。在我的表中,我有一个名为industry的列,其中包含类似

的值
id 69 
name    :aruna      
username :aruna
email   :artkjnjkn@sf.sd 
password: bd09935e199eab3d48b306d181b4e3d1:i0ODTgVXbWyP1iFOV
type    : 3     
industry: | Insurance   | Analytics | EIS and Process Engineering 

实际上这个行业价值是从下拉框中选择的多选...

现在我正在尝试加载以使我的表单包含这些值

行业是下拉框

<select id="ind1" moslabel="Industry" onClick="industryfn();"mosreq="0" multiple="multiple" size="3" class="inputbox" name="industry1[]">'+

    <option value="Banking and Financial Services">Banking and Financial Services</option>

    <option value="Insurance">Insurance</option>

    <option value="Telecom">Telecom</option>

    <option value="Government ">Government </option>

    <option value="Healthcare &amp; Life sciences">Healthcare & Life sciences</option>

    <option value="Energy">Energy</option>

    <option value="Retail &amp;Consumer products">Retail &Consumer products</option>

    <option value="Energy, resources &amp; utilities">Energy, resources & utilities</option>

    <option value="Travel and Hospitality">Travel and Hospitality</option>

    <option value="Manufacturing">Manufacturing</option>

    <option value="High Tech">High Tech</option>

    <option value="Media and Information Services">Media and Information Services</option>
</select>

如何保持行业价值(|保险|分析| EIS和流程工程)的选择?

编辑:                             Window.onDomReady(函数(){                用户&GT;获得( '产业');                  $ s = explode('|',$ str)                 ?&GT;

                    var selectedFields = new Array();
                     <?php for($i=1;$i<count($s);$i++){?>

                        selectedFields.push("<?php echo $s[$i];?>"); 
                       <?php }?>
                         for(i=1;i<selectedFields.length;i++)
                     {

                               var select=selectedFields[i];
            for (var ii = 0; ii <  document.getElementById('ind1').length; ii++) { 
                    var value=document.getElementById('ind1').options[ii].value;
           alert(value);
          alert(select);
                                                     if(value==select)
                                                     {

                     document.getElementById('ind1').options[ii].selected=selected;
                                                     }//If 
                               }  //inner For
                   }//outer For
      </script>

我已经尝试过以上警报功能正常工作。 但if循环无法正常工作.. 为什么这样..请帮帮我....

1 个答案:

答案 0 :(得分:0)

将选定的值分解为数组,使foreach循环运行select的所有选项,如果这些值匹配,只需将selected =“selected”。

示例:

Javascript / PHP:

<script type="text/javascript">
            Array.prototype.in_array = function( p_val ) {
                for(var i = 0, l = this.length; i < l; i++) {
                    if(this[i] == p_val) {
                        return true;
                    }
                }
                return false;
            }

            // Swap this for normal onDomReady if you don't use jQuery
            $(document).ready( function() { 
<?php
$selected_from_db = "Insurance|Analytics|EIS and Process Engineering|Telecom";
$selected = explode( "|", $selected_from_db );
?>

        var selected_fields = new Array();

<?php
foreach ( $selected as $key => $value ) {
    ?>
            selected_fields.push("<?php echo $value;?>");
<?php
}
?>

        var ind_dropdown = document.getElementById( "ind1" );

        for ( var i = 0; i < ind_dropdown.length; i++ )
        {
            if ( selected_fields.in_array( ind_dropdown.options[ i ].text ) ) {
                ind_dropdown.options[ i ].setAttribute( "selected", "selected" );
            }

            /*var select=selectedFields[i];
            for (var ii = 0; ii <  document.getElementById('ind1').length; ii++) {
                    var value=document.getElementById('ind1').options[ii].value;
           alert(value);
          alert(select);
                                                     if(value==select)
                                                     {

                     document.getElementById('ind1').options[ii].selected=selected;
                                                     }
                               }*/
        }

    });
        </script>

HTML:

<body>
        <select id="ind1"  name="industry[]" multiple="multiple" size="5">
            <option value="Banking and Financial Services">Banking and Financial Services</option>
            <option value="Insurance">Insurance</option>
            <option value="Telecom">Telecom</option>
            <option value="Government ">Government </option>
            <option value="Healthcare &amp; Life sciences">Healthcare &amp; Life sciences</option>
            <option value="Energy">Energy</option>
            <option value="Retail &amp;Consumer products">Retail &amp; Consumer products</option>
            <option value="Energy, resources &amp; utilities">Energy, resources &amp; utilities</option>
            <option value="Travel and Hospitality">Travel and Hospitality</option>
            <option value="Manufacturing">Manufacturing</option>
            <option value="High Tech">High Tech</option>
            <option value="Media and Information Services">Media and Information Services</option>
        </select>

    </body>

我不建议混合使用PHP和Javascript代码。这太乱了,难以维护。我建议你在服务器端(PHP)或客户端(AJAX)解析这些数据。