julia 发表于 2011-1-10 12:07:20

document.getElementById("ops").submit();//仍然没有执行submit()

Hex 发表于 2011-1-10 12:13:25

那这个就奇怪了,你可以把你的项目打包发上来,我帮你测试下,你贴的代码看不出问题来。

julia 发表于 2011-1-10 16:49:17

本帖最后由 julia 于 2011-1-10 17:34 编辑

全部源码就是第一贴,没有涉及数据库和models
仅仅测试controllers中接受js发送的submit

你可以直接复制controllers 和view源码套用在任何已有文件中测试

Hex 发表于 2011-1-11 01:04:08

你应该改成:
document.getElementById("form").submit();
因为你的是 <form id="form"></form>
你这些东西和 PHP 一点关系也没有。。。
纯 JS 问题。
你可以用 firebug 仔细调试下。

julia 发表于 2011-1-12 07:43:54

仍然没有回到controller?
其实我是将以前通过的文件转换到CI 才遇到此问题的?

Hex 发表于 2011-1-12 14:00:11

这个建议你用 firebug 调试下,这个东西 PHP 都控制不了,CI 更控制不了了。
你的是 js 没有执行,而不是 PHP 没执行。

julia 发表于 2011-1-17 10:34:24

本帖最后由 julia 于 2011-1-17 10:35 编辑

用 firebug 调试没有任何错误
测试源码
--------Controller - test.php
class Test extends Controller
{
    function __construct()
    {
      parent::Controller();
    }
    function index()
    {
      if ($this->input->post('submit')) echo 'submited id='.$this->input->post('cat_id');
      $$data['category'] = array(
                   'type'   => 1,
                   'category' => 2,
                   'region'   => 3                                  
              );
      $this->load->view('test', $data);
    }
}
--------views - test.php
<script language="JavaScript">
function submit2()
{
var s=document.getElementById("ops");
alert(s.value); //显示正确
document.form.submit(); //没有按常规的submit()返回Controller
}
</script>
<?php echo form_open(site_url($this->uri->uri_string()),array('name' => 'form', 'id' => 'form')); ?>
<?php echo form_dropdown('cat_id', $category, set_value('cat_id',$value['category']),'id="ops" onChange="submit2()"'); ?>
<input type="submit" name="submit" value="change">
</form>
页: 1 [2]
查看完整版本: form_dropdown 中 JS submit() 没有返回执行 controllers?