JQUERY 在 2 种不同的环境中.标准 PHP 和 MVC.第一个作品第二个没有


JQUERY in 2 different environments. Standard PHP and MVC. 1st works 2nd does not

问题是:它在第一个环境中加载选定的索引值。

它不会在第二个 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