问题是:它在第一个环境中加载选定的索引值。
它不会在第二个 MVC 代码点火器中发送它。控制器不会获取加载前发送的选定索引。
第一个作品:看看有多容易理解。
//jquery code for source list
$(document).ready(function()
{
$('#sel_pais').change(function()
{
if ($(this).val()!='')
{
$("#sel_source").load("includes/getchilds5.php",{pais_id: $(this).val()});
}
});
}); // end of first function
=========================================================
getchilds5.php file
if(isset($_REQUEST['pais_id']) && !empty($_REQUEST['pais_id'])) {
$result = mysql_query("select * from tabla_from where pais_id='".$_REQUEST['pais_id']."' ");
if(mysql_num_rows($result) > 0) {
echo '<option value="">Select</option>';
while($row = mysql_fetch_assoc($result)) {
echo '<option value="'.$row['id_from'].'">'.$row['from_name'].'</option>';
}
} else {
echo '<option value="">Select</option>';
}
} # end of IF ISSET FOR PAIS
=======现在 MVC 它不起作用,因为控制器没有获得值:
$(document).ready(function()
{
$('#country').change(function()
{
if ($(this).val()!='')
{
$("#source").load("/CI-3/application/controllers/control_form.php/",{pais_id: $(this).val()},
}
});
}); // end of first function
</script>
============================================================
<?php echo form_open('control_form/add_all'); ?>
<label for="country">Country<span class="red"></span></label>
<select id="country" name="country">
<option value="">Select</option>
<?php
foreach($result as $row)
{
echo '<option value="' . $row->pais_id . '">' . $row->pais_name . '</option>';
}
?>
</select>
<label for="source">Source Language<span class="red"></span></label>
<!--this will be filled based on the tree selection above-->
<select id="source" name="source">
<option value="">Select</option>
<?php
===============================================================
控制器将执行以下操作:
$pais_id = $this->input->get_post('country', TRUE); # but I am not getting anything
但它得到一个空对象
看起来您正在尝试从 POST 请求中获取数据,但您将其作为 GET 发送。 jQuery的$.load执行GET请求,正如手册所说,它等于
$.get(url, data, success)
在您的第一个示例中,您使用$_REQUEST
来获取表单数据,但在第二个示例中,您似乎显式使用$_POST
数组,该数组在使用$.load
的情况下为空。
您可以了解如何使用整个 $_REQUEST 或从 $_GET 数组中获取数据。
看起来您的名字也不匹配。在jQuery中,你使用pais_id
但在MVC中,你得到的是country
当然不会找到它。
UPD:由于历史原因,删除线文本留在这里。它与我们在聊天讨论中清除的原始主题无关。
UPD2:可能有帮助的链接:
- 无法访问我使用 jQuery ajax 发送的帖子值
- mod_rewrite和 PHP 问题中的 POST 方法,$_POST 始终为空
- 代码点火器空 $_POST & $_FILES