1

我不知道我是否正确地提出了这个问题,但让我试着更好地解释自己。
我的页面上有以下菜单,一旦选择了新选择,就会输出新结果: 选择菜单

Izaberite pol:并分别Izaberite studente:包含 3 个选项。oba, zenski, muskioba, stari, novi

我添加了一些 Javascript 来识别选项更改并自动调用控制器操作:

$("select.filter").change(function () {
    var str = "";
    $("select option:selected").each(function () {
        str += $(this).attr('value') + "/";
    });
    window.open("http://vipassana-srbija.comli.com/index.php/login/trust/"+str,"_self");
});

从 Javacript 代码中可以看出,它将调用控制器的登录信任函数:

public function trust($tabela="letnji",$pol="oba", $student="oba"){

    $data['rezultat']=  $this->prijava_model->zgrabi_tabelu($tabela,$pol,$student);
    $data['tabela']=$tabela;
    $data['pol']=$pol;
    $data['student']=$student;

    $prijavljen = $this->session->userdata('prijavljen');
    if($prijavljen)
    {
        $this->load->view('prijava/trust.php', $data);  
    }
    else
    {
        redirect('login');
    }
}

此外,您会注意到它使用了Prijava_model模型的zgrabi_tabelu功能:

function zgrabi_tabelu($tabela,$pol,$student){
    $upit_rezultat=array();

    if($pol=="oba" && $student="oba")
        $upit = $this->db->get($tabela);
    else if($pol!="oba" && $student!="oba")
        $upit=$this->db->get_where($tabela,array('pol'=>$pol,'stari_novi_student'=>$student));
    else if($pol!="oba" && $student=="oba")
        $upit=$this->db->get_where($tabela, array('pol'=>$pol));
    else if( $pol=="oba" && $student!="oba")
        ;//$upit=$this->db->get_where($tabela, array('stari_novi_student'=>$student));

    foreach($upit->result() as $red){
        array_push($upit_rezultat, $red);
    }

    return $upit_rezultat;
}

而且我认为模型的zgrabi_tabelu功能存在问题,因为每个可能的组合都可以正常工作,除了最后一个,当我尝试通过仅更改最后一个选择菜单来获取数据时,Izaberite studente:所有其他选项都保持不变:

不工作1 && 不工作2 不会工作

但是当我将以前的字段更改Izaberite pol:为旁边的任何内容时,Oba它会正常工作:

作品

最后让我为您提供菜单项的 HTML:

<div>
    <label>Izaberite kurs:</label>
    <select class="kurs" id="kurs_datum">
        <option value="letnji" selected='selected'>Letnji kurs(27.6 - 7.7.2012)</option>
        <option value="jesenji" >Jesenji kurs(10.10 - 21.10.2012)</option>
    </select>
</div>
<div>   
    <label>Izaberite pol:</label>
    <select class="filter" id="pol">
        <option value="oba" selected='selected'>Oba</option>
        <option value="zenski" >Ženski</option>
        <option value="muski" >Muški</option>
    </select>
</div>
<div>
    <label>Izaberite studente:</label>
    <select class="filter" id="student">
        <option value="oba" selected='selected'>Oba</option>
        <option value="novi" >Novi</option>
        <option value="stari" >Stari</option>
    </select>
</div>

希望这是有道理的。如有必要,我很乐意进一步澄清这一点。
任何帮助表示赞赏。

4

3 回答 3

2

在你的 jquery 调用中打开一个新窗口,我想你想删除那个逗号并在那里放一个斜杠

所以改变这个:

window.open("http://vipassana-srbija.comli.com/index.php/login/trust/"+str,"_self");

到:

window.open("http://vipassana-srbija.comli.com/index.php/login/trust/"+str+"/_self");
于 2012-04-03T20:51:26.777 回答
1
function zgrabi_tabelu($tabela,$pol,$student){
$upit_rezultat=array();

if($pol=="oba" && $student="oba")
    $upit = $this->db->get($tabela);
else if($pol!="oba" && $student!="oba")
    $upit=$this->db->get_where($tabela,array('pol'=>$pol,'stari_novi_student'=>$student));
else if($pol!="oba" && $student=="oba")
    $upit=$this->db->get_where($tabela, array('pol'=>$pol));
else if( $pol=="oba" && $student!="oba")
    ;//$upit=$this->db->get_where($tabela, array('stari_novi_student'=>$student));

foreach($upit->result() as $red){
    array_push($upit_rezultat, $red);
}

return $upit_rezultat;
}

你在第一行遗漏了一个 = ......

if($pol=="oba" && $student="oba")

应该

if($pol=="oba" && $student=="oba")

我相信 IF 函数会返回 false,因为它是一个 false 运算符。

于 2012-04-03T21:27:47.040 回答
0

附加说明,您将视图称为 '$this->load->view('prijava/trust.php', $data);' - trust.php 不应该只是信任 - CI 在视图中“要求”时将 .php 添加到末尾。

于 2012-04-03T21:27:33.827 回答