2

javascript 配列やその他の変数を php コントローラーに渡すのに問題があります。私はコードイグナイターでこれをやっています。次のように、JavaScriptにいくつかの値を割り当てました。

var count = ($('#listOfProducts tr').length);
//loop start
var i=0;
grid=$('#listOfProducts input[type="checkbox"]:checked').each(function(){
    var $row = $(this).parents('tr'); 
    var $trid =$(this).closest('tr').attr('id');
    rowid[i]=$trid; 
        rowfields.push({itemname: $row.find('td:eq(0)').text(), productname:$row.find('td:eq(1)').text(), productdesc: $row.find('td:eq(2)').text(), unitprice:$row.find('td:eq(3)').text(), quantity:$row.find('td:eq(5) input').val(), amount:$row.find('td:eq(6) input').val()});
    i++;
});

値をデータベースに保存できるように、コントローラーに渡す必要があります...助けはありますか?この配列をセッション変数として保存することを考えていますが、クライアント側とサーバー側の問題を考慮すると、方法がわかりません。

4

2 に答える 2

2

私はCIを使用していますが、私が見つけた最良の方法は、次のようにAJAXを介して送信することです。

$('.your-element').click(function(e){
    var id = 1;
    $.ajax({
        url: base_url()+'yourController/youFunction/'+id,
        type: 'get',
        dataType: 'html',
        success: function(html) {
            //YOUR ACTION
        }
    });

});

さらに仕様が必要な場合はお知らせください。 NOTE: This method creates problems if you have sessions data going on as every ajax call changes the session id or doubles the time of the session_update. これを処理するには、この投稿を参照してください: CODEIGNITER SESSION/AJAX PROBLEMS の処理

編集:

JSの場合base_url()、index.php ファイルに次のように記述しました。

<script>
function base_url(){
  var url  = '<?= base_url() ?>';
  return url;
}
</script>

配列編集

$.post()Array ajax-call の場合、次のようにjQuery を使用して行います。

$('.your-element').click(function(e){
    e.preventDefault();
    var demoArray = ['1', '3', '7'];
    $.post(base_url()+'admin/test/', {array_send:demoArray}, function(result){
        alert(result);
    });
});

コントローラの場所admin/test:

public function test(){
    print_r($_POST['array_send']);
}
于 2013-08-05T14:25:25.603 に答える
1

実際には、javascript (またはブラウザー) から php に情報を渡すためのオプションはいくつかあります。

  1. Ajax リクエストの使用。$_GETこれは、GET リクエストまたは POST リクエストの両方である可能性があります (それぞれまたは$_POST配列に存在する php の変数
  2. フォームを使用する: 送信したいデータを古い形式の html フォームに追加して投稿します。
  3. 魔法: 歯ブラシを頭に当てて、7 回向きを変えて、存在しない言葉をつぶやきます。それは役立つかもしれません。
于 2013-08-05T14:16:20.103 に答える