2011-04-08 64 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

相关问题