1

ビューからコントローラーに配列を渡す際に問題があります。場合は次のとおりです。

見る

    <script type="text/javascript"> 
function displayDet(kode,rowNo,rows){
    var jsarr = new Array();
    jsarr = {'kode': kode,'rowno':rowNo,'rows':rows};
    //alert(jsarr['kode']+jsarr['rowno']+jsarr['rows']);
    window.location.href='http://localhost/ci_hiandgirls/index.php/sales/sales/form_so_arr/'+jsarr;  
}
</script>

コントローラ

public function form_so_arr( $params = array() ){
    foreach($params as $val){
        $view['detRows'] = $val['rows'];
        $view['kode'] = $val['kode'];
        $view['rowNo'] = $val['rowNo'];
    }       
    $this->load->view('sales/form',$view);
}

これは正しいですか ?「foreach()に無効な引数が指定されました」というエラーメッセージが表示されます。javascriptから配列をキャッチして、値をVIEWに送り返したいだけです。親切に私を助けてください。

4

3 に答える 3

1

これは悪い習慣のようです。しかし、このようにしたい場合は、パラメーターを次のような異なる URL セグメントとして渡します

<script type="text/javascript"> 
function displayDet(kode,rowNo,rows){
window.location.href='http://localhost/ci_hiandgirls/index.php/sales/sales/form_so_arr/'+kode+'/'+rowNo+'/'+rows;  
}
</script>

また、ベース URL をハード コーディングするべきではありません。サイトを移動してベース URL が変更された場合にどうなるかを考慮して、これを動的に行う必要があります。

于 2013-07-05T13:24:25.440 に答える
0

URL で配列を送信するのは悪い習慣です。CI はuri segment、URL からパラメーターを渡したり取得したりする機能を提供します。この方法でも実行できます。

<script type="text/javascript"> 
function displayDet(kode,rowNo,rows){
window.location.href='http://localhost/ci_hiandgirls/index.php/sales/sales/form_so_arr/'+kode+'/'+rowNo+'/'+rows;  
}
</script>

コントローラーでこれらのパラメーターを次のように取得できます

public function form_so_arr(){
        $view['detRows'] = $this->uri->segment(6);
        $view['kode'] = $this->uri->segment(4);
        $view['rowNo'] = $this->uri->segment(5);

    $this->load->view('sales/form',$view);
}

Uri Segment Workingを読む必要があります

これがどのように機能するかという uri セグメントの概要です。

http://example.com/index.php/news/local/metro/crime_is_up
The segment numbers would be this:

uri segment (1) =>news
uri segment (2) =>local
uri segment (3) =>metro
uri segment (4) =>crime_is_up

それが理にかなっていることを願っています

于 2013-07-05T10:28:55.860 に答える