0

私のphp/jqueryスクリプトに問題があります。PHP スクリプトは、MySQL データベースからフィールドの配列を取得し、それを JSON に解析してエコーし、Jquery スクリプトで取得できるようにすることを想定しています。

問題は、Jquery スクリプトがデータを正しく取得していないか、JSON を正しく処理していないことです。または、何か間違ったことをしている可能性もあります (Jquery は私にとって新しい作業分野であるため、これが当てはまる可能性があります)。 .

インターネットで見つけたさまざまな Jquery スクリプトを試しましたが、現在のコードは次のとおりです。

PHP:

<?php 
     include("../../config.php");
     $roomId = $_POST['roomId'];

     $data = mysql_query("SELECT field FROM fields WHERE room = '$roomId' 
        AND value = 1 AND TYPE = ''") or die(mysql_error());

    while ($users = mysql_fetch_array($data)) {
        echo json_encode($users);
    }
?>

Jquery スクリプト:

function UpdateRoom() {
    var data = 'roomId='+roomId;

    $.ajax({
        type: "POST",  
        url: "chatfunctions/getplacementfield.php",
        dataType: 'json',
        data: data,
        success: function(data){
            var arrayValues = $.parseJSON(data);
            $.each(arrayValues, function() {
                $('#f' + parseInt(arrayValues.field).append('<div id="user" />');
             });
        }
    }); 
}

私が間違っていることを教えてくれる人。これが悪い Jquery または PHP である場合は、先に述べたように、私は Jquery を初めて使用し、PHP の専門家ではありません。

PS: firebug コンソールでエラーが発生していません

4

2 に答える 2

0

設定してみてください、

header('Content-type: application/json');

jsonデータをエコーする前に。

この行も削除する必要があります。vararrayValues=$ .parseJSON(data); 各関数にデータを渡します。console.log(data)を使用して、ユーザーの配列を確認します。

于 2012-11-30T01:37:00.520 に答える
0

これを試してみてください。たとえば、この例からアイデアが得られることを願っています。-

PHP:

<?php

  $con = mysql_connect("localhost","root","");
  $dbs = mysql_select_db("rs", $con);

  $result = mysql_query("SELECT * FROM profile") or die(mysql_error()); 
  $json = array(); 
  while ($row = mysql_fetch_assoc($result)) { 
  $json[] = $row;
  }

  print json_encode($json);   
  exit;

?>

Jクエリ:

$(function(){

    $.getJSON("userinfo.php",function(data)
    {
    $.each(data, function(i,data){
    var jsondata ="<li>Name : "+data.fname+" "+data.lname+"</li>";
    $(jsondata).appendTo("ol#userlist");
        });
        });
    });
于 2012-11-30T11:22:05.997 に答える