具有相同名称的codeigniter输入字段

mzmfm0qo  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(169)

对不起,如果这是一个愚蠢的问题,但我需要一点帮助。
我做了一个注册表,我想人们选择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;    
        }

    }
wj8zmpe1

wj8zmpe11#

你的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字段的过滤器根据你对select字段的选择而改变。

dzhpxtsq

dzhpxtsq2#

你的问题已经是answered了。Phil Sturgeon正在研究这个问题,所以你可以尝试使用github的CI开发分支。

bq3bfh9z

bq3bfh9z3#

如果你只想要一个电话号码(取决于国籍),我想当你只使用一个输入字段并将其值写入数据库(或做任何你想做的事情)时会更简单。或者有什么理由使用两个输入字段吗?

相关问题