0

問題は次のとおりです。最初の環境で、選択したインデックス値を正しくロードします。

2 番目の MVC codeigniter では送信しません。コントローラーは、load が送信する前に選択されたインデックスを取得しません。

1つ目 WORKS: いかに簡単に理解できるか見てください。

//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

しかし、それは空のオブジェクトを取得します

4

1 に答える 1

1

POSTリクエストからデータを取得しようとしているようですが、GETとして送信しています。jQueryの$.loadはGETリクエストを実行し、マニュアルに記載されているように、次のようになります。

$.get(url, data, success)

最初の例ではフォームデータを取得していましたが、2番目の例では、を使用する場合は空の配列を$_REQUEST明示的に使用しているように見えます。$_POST$.load

$ _REQUEST全体を使用する方法、または$_GET配列からデータを取得する方法を確認できます。

また、名前が一致していないようです。jQueryでは使用しますpais_idが、MVCではcountryもちろん見つからないために取得しています。

UPD:歴史的な理由でここに残された取り消し線のテキスト。チャットディスカッションでクリアしたので、元のトピックとは関係ありません。

UPD2:役立つ可能性のあるリンク:

于 2012-08-13T16:51:13.880 に答える