HTML表单变量值不会传递给MVC配置中的PHP类

时间:2012-03-26 09:33:02

标签: php javascript html

在开始之前 - 我已经阅读了很多关于使用和使用$ _GET ['name']从HTML页面传递变量的信息。

我有一个带有列表的HTML表单,其中根据选择(从MSSQL DB中的表中接收的值),应根据第一个列表的值填充第二个列表: 例如。兴趣 - 在兴趣列表中进行选择,并根据1/2/3,在同一个数据库的表Subinterest中过滤SubInterest列表。此列表采用HTML格式(我在模型 - 控制器视图中的视图; javascript警报,显示值选择,以及URL中显示的值

当我在我的PHP文件(MVC中的控制器)中使用$ _GET []时,该值显示为null。

任何人都有任何想法可能出错?

以下代码段

<script type="text/javascript">
    function getID()
    {
    var idVal = document.getElementById("interestDrop").value;  
    window.location.assign("cInterests.php?id=" + idVal);
    alert(idVal);
    }
</script>
.
.
.
Interests 1: 
    <form name="formInterest1" action="cInterests.php" method="get">
    <select id="interestDrop" onchange="getID()"> 
        <option value="">Please select interest</option>
            <?php foreach($interests as $interest):?>
                <option value="<?php echo $interest['InterestID'];?>">
                <?php echo $interest['Interest'];?>
                </option>
            <?php endforeach;?>

    </select>               
    </form>

PHP文件的开始

<?php 
      $idVal = $_GET['id']; // is this '' or "" ?
class cInterests extends CI_Controller
{   
    .
    .
}

当我在他的文件中调试时,$ idVal显示为NULL ...

2 个答案:

答案 0 :(得分:0)

编辑:正确阅读问题:)

由于您使用的是CodeIgniter,因此您应该使用

$idVal = $this->input->get('id');

增加:

另外,请注意配置,您必须在配置中使用此功能:

$config['enable_query_strings'] = true;

(查询字符串应设置为true才能使其生效)

答案 1 :(得分:0)

您的目标网址似乎无法正常运行。 MVC的Action URL应该是......

  

的index.php /兴趣/ someaction

在javascript位置相同

window.location.assign("/Interests/someaction?id=" + idVal);
//or this is basic MVC route uri
window.location.assign("/Interests/otheract/" + idVal);

你的控制器

<?php
//DO NOT insert any logic code outside class/function
class Interests extends CI_Controller {

    public function someaction()
    {
        $id = $this->input->get('id');
        var_dump($id);
    }

    public function otheract($id)
    {
        var_dump($id);
    }
}
?>

我建议你学习What is a ControllerURI Routing