PHP If заявление HTML значение параметра 0 - PullRequest
0 голосов
/ 07 марта 2019

Итак, на моем веб-сайте есть кнопка, которая позволяет людям добавлять категории игр в профиль. Я не думаю, что пользователь сможет нажать добавить в профиль, если в раскрывающемся списке ничего не выбрано. Я пробовал несколько вещей, но я вижу результаты, которые я хочу, это блок формы кода:

<div class="form-group">
        <label for="" class="col-md-3 control-label">Game Categories *</label>
        <div class="col-md-9">
            <select name="game_categories_id" id="game_categories_id" class="form-control">
                <option value="0">Select One...</option>
                <?php foreach ($game_categories as $game_category): ?>
                    <option value="<?php echo $game_category->ID; ?>">
                        <?php echo $game_category->name; ?>
                    </option>
                <?php endforeach; ?>
            </select>
        </div>
    </div>

И внизу в моей области отправки у меня есть следующее:

<div class="modal-footer">
   <?php if (!empty($_POST['game_categories_id']) && ($_POST['game_categories_id'] == 0))  { ?>
       <button type="button" class="btn btn-primary" id="save_game_categories_id" ?>">Add Game</button>
   <?php } elseif (!empty($_POST['credit_reporting_org_id']) && ($_POST['credit_reporting_org_id'] != 0)) { ?>
       <button type="button" class="btn btn-primary" disabled id="save_game_categories_id" ?>">Add Game</button>
<?php } ?>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>

Что я хочу сделать, так это то, что кнопка «Добавить игру» не активируется, пока в выпадающем списке не будет что-то выбрано, но сейчас, кроме кнопки «Закрыть», ничего не отображается.

Также у меня есть это в js-файле, который касается добавления игровых категорий:

// Save game categories
$('#modal').on('click', '#save_game_categories_id', function() {
    var errors = 0;
    var $form = $('#add_game_categories_form');

    // Make sure game fields are filled
    $.each([$('#game_categories_id'), $('#game_type_id')], function(i, $input) {
        if ($input.val() == '' || $input.val() == 0) {
            $input.parents('.form-group').addClass('has-error');
            errors++;
        } else {
            $input.parents('.form-group').removeClass('has-error');
        }
    });

    if (errors > 0) return false; // Don't proceed if there are errors

    $.post('/game/approved_game/' + game_topic_id, $form.serialize(), function(
        data
    ) {
        if (data.success == true) {
            refresh_approved_game();
            $('#modal').modal('hide');
        } else {
            $form.find('.alert').show();
        }
    });
});

Итак, у меня уже есть js, и я знаю, что он работает, так как я могу добавлять игры, но я просто хочу отключить кнопку отправки, если они не выбирают что-либо в выпадающем списке

Ответы [ 3 ]

1 голос
/ 07 марта 2019

Возможно, вы захотите сделать это с помощью Javascript. Вы можете использовать Jquery следующим образом:

$('#game_categories_id').on('change', function(){
  var noAnswer = ($(this).val() == 0);
  $('#save_game_categories_id').attr('disabled', noAnswer);
});

Если вам нужно использовать Vanilla JS, я тоже могу добавить решение.

0 голосов
/ 07 марта 2019

Это:

<?php if (!empty($_POST['game_categories_id']) && ($_POST['game_categories_id'] == 0))  { ?>

Должно быть:

<?php if (!empty($_POST['game_categories_id']) && ($_POST['game_categories_id'] != 0))  { ?>

Чтобы пользователь добавил игру, когда что-то выбрано.

0 голосов
/ 07 марта 2019

насколько я понимаю, прикрепление примера кода ниже:

<button type="button" class="btn btn-primary" <?php if(userSelectedCategory == ''){ echo'disabled';} ?> id="save_game_categories_id" ?>">Add Game</button>

это отключит вашу кнопку, если вы не выберете какую-либо другую категорию, удалите отключен атрибут , что означает кнопку добавления игры включено

...