2014-03-27 42 views
1

我試着去創造一個選擇是動態的,例如如果在數據庫禮品3項,那麼它會創建一個從數據庫講師值3選擇。這是在用戶單擊按鈕添加時創建選擇的JavaScript。 現在用戶後有創建3個選擇並提交,如果用戶希望編輯回數據,我該怎麼辦呢?如何從數據庫中獲取數據並創建動態選擇?

function addField(area,field,limit) 
{ 
var field_area = document.getElementById(area); 
var all_inputs = field_area.getElementsByTagName("select"); 
var last_item = all_inputs.length - 1; 
var last = all_inputs[last_item].id; 

if(document.createElement) 
{ 
var li = document.createElement("li"); 
    var input = document.createElement("select"); 
    var opt = document.createElement("option") 

    input.id = field; 
    input.name = field; 
    opt.value = "NULL"; 
    opt.textContent = "NO LECTURER"; 
    li.id = "li"+last_item; 

    input.appendChild(opt); 
    li.appendChild(input) 
    $(document).ready(function() 
    { 
    $.ajax 
    ({ 
    type:"post", 
    url: "event/data.php", 
      success: function(data) 
    { 
     console.log(data); 
     $(input).append(data); 
    } 
    }); 
    }); 
    field_area.appendChild(li); 


    } 

    } 

這裏例如我有什麼創造,

http://i.imgur.com/je1MchL.png

這是如何工作的

http://i.imgur.com/c4ICTWt.png

所以在數據庫中主要有5個數據,所以想什麼IM要做的是在下一頁它會自動創建精確的5選擇。我怎樣才能做到這一點?

感謝

回答

0

創建一個函數(重用有用)

// Returns select dropdown 
// ----------------------------------------------------------------------- 
function create_select($name='select', $values = array(), $current='') 
{ 
    $select = ' 
    <select name="'.$name.'">'; 
    foreach($values as $key => $value){ 
     $selected = $key == $current ? ' selected = "selected"' : ""; 
     $select .= ' 
     <option value="'.$key.'"'.$selected.'>'.$value.'</option>'; 
    } 
    $select .= ' 
    </select> 
    '; 
    return $select; 
} 

,並稱之爲:

// $options : return array from DB 
$curr = 'some_key'; 
$select_name = 'my_select'; 

echo create_select($select_name,$options,$curr); 

一個完整的工作示例:

enter image description here

<?php 
// Returns select dropdown 
// ----------------------------------------------------------------------- 
function create_select($name='select', $values = array(), $current='') 
{ 
    $select = ' 
    <select name="'.$name.'">'; 
    foreach($values as $key => $value){ 
     $selected = $key == $current ? ' selected = "selected"' : ""; 
     $select .= ' 
     <option value="'.$key.'"'.$selected.'>'.$value.'</option>'; 
    } 
    $select .= ' 
    </select> 
    '; 
    return $select; 
} 
     $dbhost = 'localhost:3306'; 
     $dbuser = 'root'; 
     $dbpass = ''; 

     $conn = mysql_connect($dbhost, $dbuser, $dbpass, $dbname); 
     if(!$conn) 
     { 
      die('Could not connect: ' . mysql_error()); 
     } 

     mysql_select_db('effone_db'); 
     $query = mysql_query("SELECT * FROM settings"); 

     while ($row = mysql_fetch_array($query)) { 
      $options[$row['option']] = $row['option_value']; 
     } 

     echo create_select('settings',$options,'100'); 
?> 
+0

所以$值應該是從數據庫中正確的數據? – otaired2

+0

這就是默認的功能,不需要打擾它,按原樣複製粘貼。 $ options是您調用函數時必須關注的數據數組。記住使用這個函數,數組鍵是選項值,數組值是選項文本。 – effone

+0

從技術上講,函數創建一個選擇與數據庫權值? 那麼如果來自totalRows_somedatabase有3個,那我該如何使用它來自動創建3個select? 所以我只是將totalRows傳遞給函數並創建一個循環? – otaired2

0

讓我們假設$選項保存生成的查詢。

所以你必須做的是環通的項目和回聲他們<select>標籤內。

喜歡:

<html> 
    <body> 
     <select name='nameUrSelectHere'> 
      <?php 
       foreach($options as $option){ 
        echo "<option value='" . $option['column_one'] . "'>" . $option['column_two'] . "</option>" ; 
       } 
      ?> 
     </select> 
    </body> 
</html> 
+0

感謝您的想法, – otaired2

相關問題