在开始之前 - 我已经阅读了很多关于使用和使用$ _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 ...
答案 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);
}
}
?>