0

私はphpで以下を持っています:

$query = mysql_query($sql);
$rows = mysql_num_rows($query); 
$data['course_num']=$rows;
$data['course_data'] = array();
while ($fetch = mysql_fetch_assoc($query) )
{

    $courseData = array(
    'course_name'=>$fetch['course_name'],
    'training_field'=>$fetch['training_field'],
    'speciality_field'=>$fetch['speciality_field'],
    'language'=>$fetch['language'],
    'description'=>$fetch['description'],
    'type'=>$fetch['type'],
    );

    array_push($data['course_data'],$courseData);
}

echo json_encode($data);

このスクリプトの結果をjqueryで受け取ったとき(ポストを使用)

次を使用してログに記録します:

console.log(data['course_data']);

出力は次のとおりです。

[Object { course_name="Introduction to C++",  training_field="Engineering" ,  speciality_field="Software",  more...}]

しかし、要素にアクセスする方法がわかりません。

私は試した

data['course_data'].course_name

data['course_data']['course_name']

何も機能しませんでした。何か案は

4

5 に答える 5

1

array_push($data['course_data'],$courseData);あなたが実際に入れている$courseDataとき、$data['course_data'][0]それゆえあなたはJavaScriptでそれにアクセスするでしょうdata['course_data'][0]['course_name']

結果を1つだけにする場合は、代わりにarray_push($data['course_data'],$courseData);を指定する必要があります$data['course_data'] = $courseDatadata['course_data']それ以外の場合は、次のように繰り返す必要があります。

for (i in data['course_data']) {
  console.log(data['course_data'][i]['course_name']);
}
于 2013-02-27T22:24:12.073 に答える
1

たとえば、最初の配列でインデックスを指定する必要があります

data['course_data'][0]['course_name'];

最初の配列を配列内の変数ではなく変数として定義した場合は、より良くなる可能性があります

于 2013-02-27T22:24:05.893 に答える
0

PHPコードが正しいと仮定すると、次のようなJSONデータを受け取ります。

{
    "course_num":34,
    "course_data":[
        {
            "course_name":"name_value",
            ....
        },
        ....etc (other object based on SQL result)
    ]
}

したがって、結果の総数にアクセスする場合は、次のようにします。

data.course_num

結果リストの最初の要素にアクセスする場合:

data.course_data[0]

結果リストの最初の要素の名前にアクセスする場合:

data.course_data[0].course_name

また

data.course_data[0]['course_name']
于 2013-02-27T22:24:07.153 に答える
0

jqueryのparseJSONメソッドを使用して、jsonオブジェクトからすべての機能を取得します...

http://api.jquery.com/jQuery.parseJSON/

于 2013-02-27T22:24:24.203 に答える
0
$data['course_data'][0]['course_name'] 

トリックを行う必要があります。そうでない場合は、var_dump($data) の出力を送信してください

于 2013-02-27T22:23:58.720 に答える