2013-04-01 44 views
0

我正在使用PHP通过Javascript追加来填充HTML中下拉菜单的选项。它的工作到目前为止,并且如果设置了会话变量,我正在使用条件语句来仅显示该团队ID的值。问题是我需要显示所有下拉选项(比如PHP中的else/while语句),即使设置了会话变量,人们仍然可以选择手动选择另一个ID,但是如果设置了会话,则会自动选择值会话变量设置为....否则就像在我的else语句中一样显示选项默认选项(1)。任何关于我应该如何去做的建议?谢谢!基于会话变量选择下拉选项使用PHP

HTML

<td class="label_container">Team ID#</td> 
      <td class="input_container"> 
      <select id="prepping_team" name="prepping_team"></select> 
      </td> 

JS

//Populate Team IDs 
function get_prepping_team() { 
$.ajax({ 
    url: './php/getprepping_team.php', 
    success: function(data) { 
     $('#prepping_team').append(data); 
    } 
}); 
}; 

PHP

//Grab Session (if set) 
session_start(); 
$_SESSION['prepping_team']; 

$prep_team = $_POST['prepping_team']; 

header("Cache-Control: no-cache, must-revalidate"); 
header('Access-Control-Allow-Origin: *'); 
header('Content-type: multipart/form-data'); 

$logAuditFile = "../log/prepform.log"; 
$logModule = "getprepping_team.php"; 
include '/mnt/library/auditlog.php'; 

require("/mnt/library/configdb.php");   
include '/mnt/library/accessdb.php'; 

//Parse and store the db ini file, this will return an associative array 
db_config_cables_test(); 
db_connect(); 

$sql = mysql_query("SELECT pt_id FROM preppingteam;"); 
//IF SESISON VARIALBE IS SET 
if(isset($_SESSION['prepping_team'])) { 
    print "<option value=\"".$_SESSION['prepping_team']."\">".$_SESSION['prepping_team']."</option>"; 
    //print "<option value=\"".$_SESSION['prepping_team']."\">".$_SESSION['prepping_team']."</option>"; 
//OTHERWISE LOAD TEAM IDs 
} else { 
    while ($data = mysql_fetch_assoc($sql)) { 
     print "<option value=\"".$data['pt_id']."\">".$data['pt_id']."</option>"; 
    } 
} 
+0

试图清理这个问题了。目前还不清楚你究竟在问什么。 – djowinz

回答

1

代码的最后一部分是没有做你想要什么。所以纠正这样

更新:

while ($data = mysql_fetch_assoc($sql)) { 
    if(isset($_SESSION['prepping_team']) && $_SESSION['prepping_team'] == $data['pt_id']) 
    { 
    print "<option selected = 'selected' value=\"".$_SESSION['prepping_team']."\">".$_SESSION['prepping_team']."</option>";  
    } 
    else 
    print "<option value=\"".$data['pt_id']."\">".$data['pt_id']."</option>"; 
} 
+0

有趣,你的其他不在括号中的是一些新的php速记的东西吗?但可悲的是,这是行不通的,我可以做到这一点,但ID只有6个选项全部为“3”。 ID是1,2,3,4,5和6,它需要显示1-6,如果会话变量设置为3或其他值,则选择3。所有代码所做的是在下拉列表中显示3,3,3,3,3,3 :( – jflay

+0

有没有一种方法可以将它应用到我的PHP中?我知道这是用在HTML中,而我在另一个stackoverflow文章中发现了这个并尝试修改它,但我只需要在我的PHP打印语句中使用这个: jflay

+0

yes ($ data = mysql_fetch_assoc($ sql)){ print““; } –