用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8109|回复: 16
收起左侧

form_dropdown 中 JS submit() 没有返回执行 controllers?

[复制链接]
发表于 2011-1-6 06:06:43 | 显示全部楼层 |阅读模式
本帖最后由 julia 于 2011-1-8 05:21 编辑

———- controllers
if ($this->input->post(‘submit’)==‘change’ or $this->input->post(‘submit’)==‘change2’) {
      echo ‘submit ‘.$this->input->post(‘submit’);
...

}

———- views
[removed]
function submit2()
{
  var s=document.getElementById("ops");
  alert(s.value); //显示正确
  
  document.form.submit('change2'); //没有执行通常的 submit 返回 controllers
}
[removed]

<?php echo form_open_multipart(site_url($this->uri->uri_string()),array(‘name’ => ‘form’, ‘id’ => ‘form’)); ?>

type <?php echo form_dropdown(‘type_id’, $type, $this->session->userdata(‘type_id’), ‘id=“ops” onChange=“submit2()”’) ?> //这里没有回到controllers
<input type="submit" name="submit" value="change" > //这里回到controllers
...
</form>
发表于 2011-1-6 13:29:40 | 显示全部楼层
什么叫做返回控制器?
感觉你这个逻辑有问题。
 楼主| 发表于 2011-1-8 05:18:22 | 显示全部楼层
当view页面执行submit后去哪里?
是不是 controllers
发表于 2011-1-8 09:09:29 | 显示全部楼层
执行 submit 后肯定是去控制器,并且是你指定的控制器。

看一下你的 JS 是不是写的有问题。
这个和 PHP 关系不大,只要发请求了,服务器肯定会收到。
 楼主| 发表于 2011-1-8 11:39:50 | 显示全部楼层
本帖最后由 julia 于 2011-1-8 11:41 编辑

———- controllers
if ($this->input->post(‘submit’)==‘change’ or $this->input->post(‘submit’)==‘change2’) {
      echo ‘submit ‘.$this->input->post(‘submit’);//==‘change’执行正常,==‘change2’没有执行这里?
...

}
发表于 2011-1-8 12:24:45 | 显示全部楼层
你用
PHP复制代码
print_r($_POST);
复制代码
一看就知道浏览器到底给没给你发送 change2
如果浏览器都没发送,那 PHP 再有本事也得不到呀,呵呵
 楼主| 发表于 2011-1-8 14:51:52 | 显示全部楼层
你用  一看就知道浏览器到底给没给你发送 change2
如果浏览器都没发送,那 PHP 再有本事也得不到呀,呵呵 ...
Hex 发表于 2011-1-8 12:24


没有发送,所以才有了如标题提问
form_dropdown 中 JS submit() 没有返回执行 controllers?

语法没有查出问题
document.form.submit('change2'); //没有执行通常的 submit 返回 controllers
发表于 2011-1-8 18:56:10 | 显示全部楼层
那你这个是 JS 问题。。。。
和 CI 无关。。。
如果是 JS 问题,那请提供完整源码,我可以帮你分析下。
 楼主| 发表于 2011-1-9 14:34:19 | 显示全部楼层
本帖最后由 julia 于 2011-1-9 14:35 编辑
那你这个是 JS 问题。。。。
和 CI 无关。。。
如果是 JS 问题,那请提供完整源码,我可以帮你分析下。 ...
Hex 发表于 2011-1-8 18:56


多谢关注,js源码
function submit2()
{
  var s=document.getElementById("ops");
  alert(s.value); //显示正确
  
  document.form.submit('change2'); //没有执行通常的 submit 返回 controllers
}
完整源码见第一贴提问
发表于 2011-1-10 00:52:11 | 显示全部楼层
貌似没有
JS复制代码
document.form.submit('change2');
复制代码

这种语法吧,submit 方法没有任何参数,至少 w3c 没这个标准。。。
你想提交什么表单,建议直接使用
JS复制代码
document.getElementById('xxx').submit()
复制代码
的国际标准方法。

详细标准和语法可以参考:http://www.w3school.com.cn

本版积分规则