- 締切済み
callback関数が起動しない
新人プログラマーです。 Javascript/PHP/MySQLで検索→リスト表示のプログラムを作っています。 Javascriptの中で、Ajax通信は行うようですが、callバック関数が起動しません。 ブレークポイントを設定しても★★のところで終了してしまい、function callback(request)が 起動しない状態です。 以前も似たようなことがあり(そのときはJASONの形式が不正でうまくcallback関数が起動しなかった)、この掲示板で助けて頂いたのですが、 PHP側を丁寧に見てみましたが、データベースの検索はちゃんとできて、JSONの形式で渡せているようです。 コンソールには [{"id":"1","customerName":"山田 アヤ","category":"果物","jusyo1":"東京都新宿区新宿","latestDate":"2012-12-22","reserveDate":"2012-12-22"},{"id":"2","customerName":"田中 かおる","category":"野菜","jusyo1":"東京都中央区銀座","latestDate":"2012-12-10","reserveDate":"2012-12-31"}] と表示されていますので、JASONは生成されていると判断しました。 なぜcallバック関数が起動しないのか、どなたか教えて下さい。 よろしくおねがいします。 【Javascript側】 // 一覧検索 function doAction(){ var category = $('#category').val(); // Ajax通信 ★★ $.getJSON('code/CustomerList2.php', {"category":category}, callback); } // 一覧表示用callback関数 function callback(request){ console.log(request); var json = eval(request); var res = ''; for (var i = 0; i < json.length; i++){ res += '<tr>' + '<td>' + json[i].customerName + '</td>' + '<td align="center">' + json[i].category + '</td>' + '<td>' + json[i].jusyo1 + '</td>' + '<td align="center">' + json[i].latestDate + '</td>' + '<td align="center">' + json[i].reserveDate + '</td>' + '<td align="center"><a href="customerdetail.html?id=' + json[i].id + '">詳細</td>' + '</tr>'; } var obj = document.getElementById("datatable"); obj.innerHTML ='<tr><td>お客様名</td><td>分類</td><td>住所1</td><td>最終来店日</td><td>ご予約日</td><td>詳細</td></tr>' + res; } //--> 【PHP側】 if ($category == 'すべて'){ $sql = "SELECT * FROM tbl_customer" ; }else{ $sql = "SELECT * FROM tbl_customer WHERE category = '" .$category. "'"; } $res = mysql_query($sql, $conn); print "res==="."$res<br />"; $result = "["; while($row = mysql_fetch_array($res)){ $result = $result. "{\"id\":\"" .$row["customerId"]. "\",\"customerName\":\"" .$row["customerName"]. "\",\"category\":\"" .$row["category"]. "\",\"jusyo1\":\"" .$row["jusyo1"]. "\",\"latestDate\":\"" .$row["latestDate"]. "\",\"reserveDate\":\"" .$row["reserveDate"]. "\"},"; } print "1)result==="."$result<br />"; $len = strlen($result); if($len != 1){ $result = substr($result,0,($len - 1)); // 最後の「,」を切り取る } $result = $result. "]"; print "2)result==="."$result<br />"; // 出力 echo $result; mysql_free_result($res);
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- shockatz
- ベストアンサー率80% (153/191)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)