0

jquery の ajax によって PHP 配列または PHP セッションに値を保存したい PHP ページで ajax によっていくつかの値を送信していて、それらを保存したい

問題:配列/セッションが前回送信した値ではなく、最新の送信値を返すたびに、
以前に送信した値を配列またはセッションに保持する必要があります

私のコードは以下です

Jsファイルコード

$.ajax({
                url: "http://domain.com/ajax.php",
                type:"POST",
                data: { name : nname , 
                    clas : nclass , 
                    rows : nrows ,
                    cols : ncols , 
                    types : ntype , 
                    check : ncheck , 
                    count : ncldiv
                 },

            success: function(data){
             alert(data); 
           }
            });

PHPファイル

<?php
        session_start(); 
        $_SESSION['feilds'] = array();    
        $type = $_POST['types'];
        $name = $_POST['name'];
        $class = $_POST['clas'];
        $rows = $_POST['rows'];
        $cols = $_POST['cols'];
        $check = $_POST['check'];
        $count = $_POST['count'];
         $output_string = array('TYPE'=>$type,'NAME'=>$name,'CLASS'=>$class,'ROWS'=>$rows,'COLS'=>$cols,'REQUIRED'=>$check);
        array_push($_SESSION['feilds'] , $output_string );
        print_r($_SESSION['feilds']);
?>
4

3 に答える 3

0

これは が原因で発生してい$_SESSION['feilds'] = array();ます。

ページが呼び出される$_SESSION['feilds']と、空の配列が割り当てられます。そのため、現在の値のみを取得します。

または$_SESSION['feilds']を使用して、既に存在するかどうかを確認しますissetempty

if(empty( $_SESSION['feilds'] )) {
  $_SESSION['feilds'] = array();
}
于 2013-06-28T07:02:51.147 に答える
0

問題は、$_SESSION['feilds']変数を常に空の配列としてインスタンス化することです。これを使って:

<?php
    session_start(); 
    if (!isset($_SESSION['feilds'])) {
        $_SESSION['feilds'] = array();
    }
    $type = $_POST['types'];
    $name = $_POST['name'];
    $class = $_POST['clas'];
    $rows = $_POST['rows'];
    $cols = $_POST['cols'];
    $check = $_POST['check'];
    $count = $_POST['count'];
     $output_string = array('TYPE'=>$type,'NAME'=>$name,'CLASS'=>$class,'ROWS'=>$rows,'COLS'=>$cols,'REQUIRED'=>$check);
    array_push($_SESSION['feilds'] , $output_string );
    print_r($_SESSION['feilds']);
?>
于 2013-06-28T07:03:54.880 に答える
0
    you wrote  $_SESSION['feilds'] = array();
    Every time it  assign a empty array at session so it will wash out previous data. 
if you want to retain your previous data then first add check like 
        if(empty( $_SESSION['feilds'] )) {
          $_SESSION['feilds'] = array();
        }
        after that you assign value to session as you are doing 
hope it will help you :)
于 2013-06-28T07:29:41.977 に答える