поля ввода codeigniter с тем же именем - PullRequest
0 голосов
/ 19 сентября 2011

извините, если это глупый вопрос, но мне нужна помощь.

Я сделал регистрационную форму и хотел бы, чтобы люди выбрали 2 телефонных номера.

Если я выбираю венгерский, то ввод типа телефона в Венгрии сдвигается вниз, если он выбирает Украину, тогда тип ввода телефона в Украине сдвигается вниз.

вот HTML

    <input type='text' name='telefon' id='magyar' class='input_title' value='<?php echo set_value('telefon'); ?>' />

    <input type='text' name='telefon' id='ukran' class='input_title' value='<?php echo set_value('telefon'); ?>' />

    <div class='hiba'><?php echo form_error('telefon'); ?></div>    

magyar = hingarian 
ukran = ukraine
telefon = phone
telo_tipus = phoe type

моя проблема в проверке, если я выбираю венгерский язык и заполняю его, он говорит, что мне нужно добавить номер телефона, но если я выберу Украину, то все в порядке

вот проверка

$this->form_validation->set_rules('telefon', 'Telefon', 'required|callback_hasznalt_telefon');

Не могли бы вы, пожалуйста, указать, что мне не хватает в проверке?

Я попытался с Na = Telefon [], но в этом случае проверка не будет работать

обратный вызов проверяется только в том случае, если телефон занят, все в порядке, но здесь он

function hasznalt_telefon()
    {
        $telefon = trim($this->input->post('telefon'));

        $query  = $this->db->query(' SELECT telefon FROM felhasznalok WHERE telefon = "'.$telefon.'" ');

        if($query->num_rows() > 0) 
        {
            $this->form_validation->set_message('hasznalt_telefon', 'Ez a telefonszám  már használatban van '); 
            return false;
        } 
        else 
        {
            return true;    
        }

    }

Ответы [ 3 ]

2 голосов
/ 19 сентября 2011

Ваш код codeigniter в порядке, но ваш html / javascript - это то, что нужно изменить.

Вместо двух полей ввода с одинаковыми именами (которые php-скрипт будет читать только последнее, кстати), вы должны создать поле выбора, которое изменяет, какой тип ввода скользит вниз из поля 'telefon'.

Я не уверен, какой javascript вы используете, но в jquery вы можете привязать событие поля вводапри выборе из поля выбора.

Если вам нужно более конкретное руководство для этого, дайте мне знать, и я отредактирую свой ответ.

<select id="telefon_type">
    <option>Telefon Type</option>
    <option value="magyar">Magyar</option>
    <option value="ukran">Ukran</option>
</select>

<input type="text" name="telefon" id="telefon" disabled />

$("#telefon_type").bind("change", function() {
    $("#telefon").removeAttr("disabled");

    if ($(this).val() == "magyar") {
        $("#telefon").bind("focus",function() {
            // onfocus event for #telefon for magyar
        });
    } else if ($(this).val() == "ukran") {
        $("#telefon").bind("focus",function() {
            // onfocus event for #telefon for ukran
        });
    } else {
        $("#telefon").attr("disabled","disabled");
        $("#telefon").val('');
    }

});

Обратите внимание: я не проверял этокод.Основная идея заключается в том, что фильтр, который вы используете для поля telefon, изменяется в зависимости от вашего выбора поля выбора.

1 голос
/ 19 сентября 2011

Если вам нужен только ОДИН номер телефона (зависит от национальности), я думаю, было бы проще, если вы используете только ОДНО поле ввода и записываете его значение в базу данных (или делаете все, что хотите). Или есть причина использовать два поля ввода?

1 голос
/ 19 сентября 2011

Ваш вопрос уже получен ответил . Фил Стерджон (Phil Sturgeon) работает над этой проблемой, поэтому вы можете попробовать использовать ветку разработки CI из github.

...