2013-10-10 71 views
-1

我需要從數據庫中多發選擇列表以檢索數據如何檢索多重選擇列表中的數據

在我的數據庫值

馬拉地語,Arunachali,阿薩姆,阿瓦迪,馬拉地語,Arunachali,阿薩姆,阿瓦迪

我用下面的代碼以檢索

 <select id="spokenlanguages" name="known_languages[]" multiple="multiple" size="5"> 
       <option value="" >Select</option> 
        <?php 
        $langs = $editdatapersonaltbl[0]['known_languages'] ;     

        $known_languages = explode(",",$langs); 

        //print_r($known_languages); exit(); 

        for($i=0;$i < count($known_languages);$i++) 
        { 
        ?>    
        <option value="<?php echo $known_languages[$i] ;?>" selected="selected"><?php echo $known_languages[$i] ;?></option>      
        <?php } ?> 

        <option value="Marathi" >Marathi</option> 
        <option value="Arunachali" >Arunachali</option> 
        <option value="Assamese" >Assamese</option> 
        <option value="Awadhi" >Awadhi</option> 
        <option value="Bengali" >Bengali</option> 
        <option value="Bhojpuri" >Bhojpuri</option> 
        <option value="Brij" >Brij</option> 
        <option value="Bihari" >Bihari</option> 
</select> 

但如果馬拉先前選擇比它顯示在我的問題是選擇和 未選擇也

沒有選擇,因爲<option value="Marathi" >Marathi</option>選項,如果有,如果馬拉不在數據庫中比,如果用戶想選擇馬拉

請給我提供一些解決方案是什麼,我會刪除此選項<option value="Marathi" >Marathi</option>比... 。

+1

好!標籤中有3個框架.... – itachi

+1

你首先使用什麼框架進行澄清。 –

回答

1

試試這個:

<select id="spokenlanguages" name="known_languages[]" multiple="multiple" size="5"> 
     <option value="" >Select</option> 
      <?php 
      $langs = $editdatapersonaltbl[0]['known_languages'] ;     

      $known_languages = explode(",",$langs); 
      $known_languages = array_filter($known_languages); #remove the blank values if any 
      //print_r($known_languages); exit(); 
      ?> 

      <option value="Marathi" <?php if(in_array('Marathi', $known_languages)){echo 'selected="selected"';}?> >Marathi</option> 
      <option value="Arunachali" <?php if(in_array('Arunachali', $known_languages)){echo 'selected="selected"';}?>>Arunachali</option> 
      <option value="Assamese" <?php if(in_array('Assamese', $known_languages)){echo 'selected="selected"';}?>>Assamese</option> 
      <option value="Awadhi" <?php if(in_array('Awadhi', $known_languages)){echo 'selected="selected"';}?>>Awadhi</option> 
      <option value="Bengali" <?php if(in_array('Bengali', $known_languages)){echo 'selected="selected"';}?>>Bengali</option> 
      <option value="Bhojpuri" <?php if(in_array('Bhojpuri', $known_languages)){echo 'selected="selected"';}?>>Bhojpuri</option> 
      <option value="Brij" <?php if(in_array('Brij', $known_languages)){echo 'selected="selected"';}?>>Brij</option> 
      <option value="Bihari" <?php if(in_array('Bihari', $known_languages)){echo 'selected="selected"';}?>>Bihari</option> 
</select> 
+0

如果他在他的選擇列表中有超過100個lang,那麼這個wat是?他需要爲每個選項編寫'in_array'。 – Ashish

+0

然後他需要將所有可用語言存儲在數據庫中。我怎麼能在這裏幫忙? @Ashish –

+0

如果我沒有錯,那麼他可以存儲所有的語言。在數組中使用in_array只有一次.. – Ashish

1

第一ü必須把HTML選項數組作爲html_aarray,然後町數據庫陣列。之後在eho html選項中,如果html_aarray的節點不存在於數據庫數組中,那麼在此之後。

我寫的4 U,用這個:http://codepad.org/gjWW9UGg

1
<?php 

//$lang_array is ur language array 
$lang_array = array('Marathi','Hindi','Gujrati','Bengali'); 

//this array ehich u fetching from DB 
$known_languages = array('Marathi', 'Gujrati'); 
?> 
<select id="spokenlanguages" name="known_languages[]" multiple="multiple" size="5"> 
<option value="" >Select</option> 

<?php 

for($i=0;$i < count($lang_array); $i++) 
{ 
    if(in_array($lang_array[$i], $known_languages)) 
    { 
     $str = 'selected="selected"'; 
    } 
    else 
    { 
     $str =''; 
    } 
echo 
'<option value="'.$lang_array[$i].'" '.$str.'> '.$lang_array[$i].'</option>'; 
} 
?> 
相關問題