2017-08-24 12 views
0

私はMysqlテーブルとphpを使って、各データ値の隣にあるボタンでページ上のデータを印刷しています。各値(一意のidを持つ)に対してボタンがクリックされると、ajax呼び出しが行われ、button idを配列に挿入するphp関数がトリガーされます。配列に値を格納するajaxトリガphp関数の使用方法

問題は、ボタンの1つをクリックすると値が配列内に挿入されますが、別のボタンをクリックすると、配列内の既存の値が削除され、新しい値だけが表示されます。

配列にとどまるために既存の値を停止するためにできることがわかりません。ここで

機能phpfile.php

public function storing_value(){ 

    $qry= $_GET['passedvalue']; 


    $info = array(); 
    $info[$qry]= $qry; 

    foreach($info as $key => $value) 
     { 

      echo $value; 

     } 
} 

インデックスページ

<script> <!---------- A J A X PART --- no need to worry about this----> 
    function showUser(str) { 
     if (str == "") { 
      document.getElementById("txtHint").innerHTML = ""; 
      return; 
     } else { 
      if (window.XMLHttpRequest) { 
       // code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp = new XMLHttpRequest(); 
      } else { 
       // code for IE6, IE5 
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp.onreadystatechange = function() { 
       if (this.readyState == 4 && this.status == 200) { 
        document.getElementById("txtHint").innerHTML = this.responseText; 
       } 
      }; 
      xmlhttp.open("GET","phpfile.php?passedvalue="+str,true); 
      xmlhttp.send(); 
     } 
    } 
</script> <!---------- A J A X PART --- no need to worry about this----> 

<div id="txtHint"> 
<b>All array data will be printed here every time button is clicked</b> 

</div> 

<?php foreach($values as $value) {?> 

<button class="<?= $value['id']; ?>"  
     value="<?= $value['id']; ?>" 
     onclick="showUser(this.value)" >Like</button> 

<?php } ?> 

のための私のコードは、だから、関数が呼び出されるたびに、既存の配列の値が削除されますです。ファイルの最初の行の開始セッションに予め

+0

'$ info [$ qry] = $ qry;'は、常にインデックス$ qryの要素を持つ配列を持っていることを意味します。 – diavolic

答えて

1

おかげで、

<?php session_start(); ?> 

以下のようなあなたの配列の値を格納するための1つのセッション変数を使用して、セッション

public function storing_value(){ 
    $qry= $_GET['passedvalue']; 
    $_SESSION['myarray'][$qry]= $qry; 

    foreach($_SESSION['myarray'] as $key => $value) 
     { 
      echo $value; 
     } 
} 
を使用するには、以下のようにコードを修正
+0

すごく素敵なおかげさまです@Mahipal Patel。私のメソッドでは、配列の値は毎回リセットされますか?私はあなたがそれを破壊するまで各キーの配列を格納すると思った – mark

関連する問題