我正在为我所在的学校建立一个GCSE选择网站,但我遇到了一个问题。
我有6个选择框,每个选项框有16个选项。
一旦选择了6个框,客户端点击提交,然后将信息提交给我们的MySQL数据库,以便日后进行审核。
这是在我的php文件中完成的:
/* Attempt MySQL server connection.*/
$link = mysqli_connect("xxxxxxxx", "xxxxxxx", "xxxxxxx", "xxxxxxx");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Attempt insert query execution
$sql = "INSERT INTO xxxxxx (username, dob, form, opt1, opt2, opt3, opt4, optRes1, optRes2) VALUES ('$username', '$dob', '$form', '$opt1', '$opt2', '$opt3', '$opt4', '$optRes1', '$optRes2')";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// Close connection
mysqli_close($link);
它必须以这样的方式工作:当客户端选择框中的选项时,该选项随后在其他5个框中被禁用,因此用户不能多次选择相同的选项。为此,我在index.html文件中使用了以下代码:
<script type="text/JavaScript" language="JavaScript">
$(function()
{
$('select').change(function(){
if($(this).attr('id') == 'opt1' && $(this).val() == 'Default'){
$('select').not(this).prop('disabled', true).val('Disabled');
} else {
$('select').not(this).removeProp('disabled');
$('select option').removeProp('disabled');
$('select').each(function(){
var val = $(this).val();
if(val != 'Default' || val != 'Disabled'){
$('select option[value="'+val+'"]').not(this).prop('disabled', true);
}
});
}
});
});
</script>
我面临的问题是当上面的代码在index.html文件中,并且客户端点击提交时,MySQL数据库只接收$ username和$ dob数据。 $ form,$ opt1,$ opt2,$ opt3,$ opt4,$ optRes1,$ optRes2未收到,且未填充这些列。
如果我把javascript拿出来,它运行正常。
有人能给我一些指示。
非常感谢,
杰克
答案 0 :(得分:0)
试试这个:
$('select').not(this).prop('disabled', false);
$('select option').prop('disabled', false);