0

友達はそれが可能かどうかわかりませんが、以下のようにしたいのですが、可能であれば最善の解決策を教えてください..

index.php

<?php
mysql_connect('localhost', 'root', '') or die (mysql_error());
mysql_select_db('mydb') or die (mysql_error());
?>
<html>
  <head>
    <script type="text/javascript" src="jquery-1.8.2.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
        $('input[type="button"]').click(function(){
          $.ajax({
            url : 'ajax.php',
            success : function(data){
              alert(data);
            }
          });
        });
      });
    </script>
  </head>
  <body>
    <input type="button" name="button" value="Submit">
    <?php print_r($_REQUEST['data'])?>
  </body>
</html>

ajax.php

<?php
mysql_connect('localhost', 'root', '') or die (mysql_error());
mysql_select_db('mydb') or die (mysql_error());

$query = mysql_query('select * from user');
$count = count($query);
while($row = mysql_fetch_array($query)) {
  $data['name'][] = $row['name'];
}
print json_encode($data);
?>

送信をクリックすると、ajax が呼び出され、以下のように json エンコードされた文字列で応答が返されます

{"name":["Nakul Kabra","Bridget Louise","Jayesh Joshi","Jignesh Chaudhary","Jitendra Vihol","Spec Develop","Harshad Sadclown","Andy Estep","Rohan"]}

今、私はこの ajax レスポンスを PHP 変数に格納して表示したいと考えています。この問題を解決する方法、誰か助けてください..??

前もって感謝します !!よろしく。

4

2 に答える 2

1

ページリクエスト間でデータを永続化しようとしているようです。ページの更新であれajaxリクエストであれ、各ページリクエストは、新しいphpランタイムを作成することを忘れないでください。変数はこれらにまたがって格納されませんが、もちろん、この動作を発生させるために使用される複数の手法があります。ページリクエスト間でデータを永続化する最も一般的な方法は、PHPセッションとCookieを使用することです。

これは、セッションとCookieを実装する方法を詳細に説明している便利な記事です。

于 2012-12-25T19:03:26.250 に答える
1

簡単な答えはノーです、それは不可能です。データをクライアント側に送信する前に、PHP配列にデータがすでに含まれています。json配列が到着すると、PHP配列として保存することはできません。もちろん、それをサーバーに送り返す必要があります。

AJAX成功関数では、jsonを解析して、フォーム(またはその他のHTML要素)に挿入できます。次に例を示します。

var obj = jQuery.parseJSON(data);
$.each(obj.name, function(index, value) {
    $('<input>').attr({
        type: 'input',
        name: 'name[]',
        value: value
    }).appendTo('#name_box');
});

サンプルフォームは次のとおりです。

<form action="edit_names.php" method="post">
    <div id="name_box"></div>
    <input type="submit" value="Submit" />
</form>
于 2012-12-25T19:06:25.573 に答える