2011-04-08 32 views
0

我有一個3步鏈接選擇序列,game -> battle -> winning side,它從MySQL數據庫中提取所有數據。幫助鏈接選擇和現有的表單值,例如:添加<option selected =「selected」></option>

在互聯網上徘徊一段時間後,我發現一個精巧的小巧的jQuery腳本。但是,我不知道如何允許現有數據:<option selected="selected"></option>使用此腳本。

鏈選擇的javascript:從PHP數據庫檢索腳本

<script> 
var ajax = new Array(); 

function getScenNumList(sel) 
{ 
    var game = sel.options[sel.selectedIndex].value; 
    document.getElementById('scenarioNumber').options.length = 0; // Empty scenario number select box 
    if(game.length>0){ 
     var index = ajax.length; 
     ajax[index] = new sack(); 

     ajax[index].requestFile = 'js/getPlayData.php?gameName='+game; // Specifying which file to get 
     ajax[index].onCompletion = function(){ createScenarioNumbers(index) }; // Specify function that will be executed after file has been found 
     ajax[index].runAJAX();  // Execute AJAX function 
    } 
} 

function createScenarioNumbers(index) 
{ 
    var obj = document.getElementById('scenarioNumber'); 
    eval(ajax[index].response); // Executing the response from Ajax as Javascript code 
} 

function getNations(sel) 
{ 
    var scenNum = sel.options[sel.selectedIndex].value; 
    document.getElementById('victor').options.length = 0; // Empty nation select box 
    if(scenNum.length>0){ 
     var index = ajax.length; 
     ajax[index] = new sack(); 

     ajax[index].requestFile = 'js/getPlayData.php?scenID='+scenNum; // Specifying which file to get 
     ajax[index].onCompletion = function(){ createNations(index) }; // Specify function that will be executed after file has been found 
     ajax[index].runAJAX();  // Execute AJAX function 
    } 
} 

function createNations(index) 
{ 
    var obj = document.getElementById('victor'); 
    eval(ajax[index].response); // Executing the response from Ajax as Javascript code 
} 

</script> 

摘錄(getPlayData.php):

$gameName = mysql_real_escape_string($_GET['gameName']); 

$q = "SELECT a, b, c FROM table WHERE game='$gameName' ORDER BY num ASC"; 

$r = mysql_query($q); 

echo "obj.options[obj.options.length] = new Option('#','');\n"; 

while ($row = mysql_fetch_row($r)) { 

    $string = mysql_real_escape_string(($row[0].' - '.$row[1])); // needed so quotes ' " don't break the javascript 

    echo "obj.options[obj.options.length] = new Option('$string','$row[2]');\n"; 

} 

呼應obj.options是股票方法這個腳本使用。這對我來說似乎很難看,但我不知道任何JavaScript,所以我不想擺弄它。

HTML很簡單,只是一個表格,其中有幾個空的<select>對象,其ID與javascript和onchange="getXXX(this)"調用中的ID匹配。

我的問題是這樣的:一切爲了新紀錄的偉大工程,但我很茫然,我怎麼可以改變此作爲選擇支持標誌着從各選擇一個選項,假設我有手數據(例如:用戶正在編輯現有記錄)?

非常感謝!

+0

要選擇任意選項,或者一些特定的一個? – Vivek 2011-04-08 02:55:41

+0

@Vivik - 目前我正在使用它來輸入新的播放記錄,但我希望能夠使用它來編輯現有記錄。在這種情況下,我將掌握遊戲,戰鬥和獲勝方數據(來自數據庫),並且希望表單能夠加載已選擇的這些項目。這樣做* *只是微不足道的,但我沒有鏈接選擇功能。這有助於澄清? – Drew 2011-04-08 03:00:51

+0

@安德魯:你在「但是我沒有鏈式選擇功能」中意味着什麼?這些javascript函數並不涉及如何通過PHP顯示現有數據。 – coolkid 2011-04-08 03:29:59

回答

1

您可以看到本教程用於創建一個選項作爲默認選項。 http://www.javascriptkit.com/javatutors/selectcontent.shtml選項構造函數中的一個參數指示是否選擇該選項。
在PHP文件,你會編輯如下:

$gameName = mysql_real_escape_string($_GET['gameName']); 

$q = "SELECT a, b, c FROM table WHERE game='$gameName' ORDER BY num ASC"; 

$r = mysql_query($q); 

echo "obj.options[obj.options.length] = new Option('#','');\n"; 

while ($row = mysql_fetch_row($r)) { 

    $string = mysql_real_escape_string(($row[0].' - '.$row[1])); // needed so quotes ' " don't break the javascript 
    if ($string ......) 
    echo "obj.options[obj.options.length] = new Option('$string','$row[2]', false, true);\n"; 
    else 
    ...... 

}

+0

似乎符合邏輯的解決方案將是在JS中設置一個現有的參數。我今晚會試試這個,如果它有效的話,很高興給你答案! :-) – Drew 2011-04-08 03:51:28

+0

不用客氣,可以儘快試用:)。祝你好運 – coolkid 2011-04-08 03:52:27

相關問題