选择后禁用下拉选项(甚至适用于新访问者)



我在一个网站上工作,人们可以在其中注册活动。根据超级英雄,我们有8个不同的团队。每个团队都应选择8个超级英雄中的1个,但是他们不应选择相同的一个。

有人选择超级英雄之后,是否可以编写一些代码来禁用选项(对于网站的每个新访问者)?

因此,如果有2个人选择了超级英雄,则只剩下6个选择。这六个是可见的,但不可分割的。

所以我的html表单代码是(某些标题/名称是荷兰语;)):

<form action="inschrijfformulier.php" method="post" id="cc-m-form-6876142651" target="_blank" class="cc-m-form cc-m-form-layout-1" onsubmit="javascript: setTimeout(function(){location.reload();}, 1000);return true;">
                                                <div class="cc-m-form-loading"></div>
                                                <div class="cc-m-form-view-sortable">
                                                    <div class="cc-m-form-view-element cc-m-form-select" data-action="element" required>
                                                        <label for="ma6b8be54cf86a6410">
    <div>Kies welke held jouw team is!</div>
    </label>
                                                        <div class="cc-m-form-view-input-wrapper">
                                                            <select name="teamnaam" class="cc-m-form-element-input" required>
                                                                <option value="" selected disabled hidden>Selecteer</option>
<option value="Superman">Superman</option>
<option value="Batman">Batman</option>
<option value="X-Men">X-Men</option>
<option value="MegaMindy">Mega Mindy</option>
<option value="Spiderman">Spiderman</option>
<option value="TheHulk">The Hulk</option>
<option value="HitGirl">Hit Girl</option>
<option value="Meerminman">Meerminman</option></select></div></div>
<input type="submit" value="Naar betalen" data-action="formButton">

因此,如果您进行选择并提交表格,则将链接到inschrijfformulie.php,此.php文件包含:

<?php 
$name = $_POST['teamnaam'];
$email = $_POST['email'];
$rekeninghouder = $_POST['rekeninghouder'];
$aantalspelers = $_POST['aantalspelers'];
$spelernamen = $_POST['spelernamen'];
$formcontent="Teamnaam: $name nEmail: $email nRekeninghouder: $rekeninghouder nAantal spelers: $aantalspelers nSpelers: $spelernamen";
$recipient = "info@sidekickevents.nl";
$subject = "Inschrijfformulier";
$mailheader = "From: $email rn";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
header("Location: https://www.ticketkantoor.nl/shop/bubbelvoetbal");
 exit;
?>

这确保我收到了一封电子邮件,其中包含他们填写的信息。这很棒,我还可以看到他们选择了哪个超级英雄。希望有人可以解释,因为我是PHP的新手!预先感谢!

首先,只要选择一个选项,就将其保存在服务器中。在绘制列表框值时,请考虑已选择的(从存储中)禁用选项。

检查,

<option value="Mega Mindy" disabled>Mega Mindy</option>

<div>
<select>
<option value="Superman">Superman</option>
<option value="Batman">Batman</option>
<option value="X-Men">X-Men</option>
<option value="Mega Mindy" disabled>Mega Mindy</option>
<option value="Spiderman">Spiderman</option>
<option value="The Hulk">The Hulk</option>
<option value="Hit Girl">Hit Girl</option>
<option value="Meerminman">Meerminman</option></select></div>

只有一种方法可以与服务器端相关。首先,您选择用户的选择:

让我们假设您的selectbox ID是"英雄 - 康博",而您正在使用jQuery。

// this gives you the selected option's value.
$("#heroes-combo option:selected").attr("value"); 

现在通过ajax将其发送到服务器端。

用户进入网站时,您需要查询数据库,其中已经选择了哪些英雄。假设数据库返回Ironman。

然后,您需要将其标记为这样的禁用:

$("#heroes-combo option[value='Ironman']").attr("disabled", true)

您可以使用代码

$('select').change(function(){
    var value = $(this).val();
    $(this).children('option').each(function() {
        if ( $(this).val() === value ) {
             $(this).attr('disabled', true);   
        }
    });
});

最新更新