jquery.post() を適切に動作させるのに非常に苦労しています。すべてが順調に進んでいるようですが、json を画面に表示できません。私はこれに最後の日ほど取り組んでおり、最後の手段としてここに投稿しています. ajax.post についてここに投稿された多くの質問と、多くの良い回答を見ました。ただし、これらの Q&A のほとんどは、単純な変数のエコー バックを扱っていました。つまり、単一の int です。残念ながら、私は配列を扱っているので、同じまたは類似の解決策がうまくいくとは思いません。これは、最初のページに返される php の外観です。このセグメントをページ #2 と呼びます。
if (!($stmt = $mysqli->prepare("SELECT id, todos FROM to_do_list WHERE uid =?"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
if (!$stmt->bind_param("s", $_SESSION['SESS_ID'])){
echo "Binding param failed: (" . $stmt->errno . ") " . $stmt->error;
}
if (!$stmt->execute()){
echo "Execute failed block 2: (" . $stmt->errno . ") " .$stmt->error;
}
$stmt->bind_result($id, $todos);
if ($stmt->store_result()){
if($stmt->num_rows > 0){
while($stmt->fetch()){
$results[] = array('id' => $id, 'todos' => $todos);
}
echo json_encode($results);
}
最初のページ、つまり呼び出しページの関連部分を次に示します。
<div id="content">
</div>
<form title="todosubmitter" id="todoPost" autocomplete="off">
Add To Do:
<br>
<input type="text" name="todo" class="required formStyle error">
<!--<input type="reset" name="submit" value="Submit" onclick="$.post('dbAccessor.php', $('#todoPost').serialize());"> -->
<input type="reset" name="submit" value="Submit" onclick="$.post('dbAccessor.php', $('#todoPost').serialize(), function(data) { $('#content').html(data);}, 'json');">
</form>
そこに何を入れても、jsonデータを画面に表示できません。私は多くのことを試しました。失敗。
また。PHPが機能せず、最初のページに何も返さない前に:
[{"id":98,"todos":"asdfa"},{"id":97,"todos":"asdfasdf"},{"id":96,"todos":"adsfasdfadf"},{"id":95,"todos":"asdfasdf"},{"id":94,"todos":"sadfasdf"},{"id":93,"todos":"asdfasdf"},{"id":92,"todos":"adfgadfga"},{"id":91,"todos":"asdfasd"},{"id":90,"todos":"asdfadf"},{"id":89,"todos":"asdfafd"},{"id":88,"todos":"asdf"},{"id":87,"todos":"asdf"},{"id":86,"todos":"asdf"},{"id":85,"todos":"asdf"},{"id":84,"todos":"dfa"},{"id":83,"todos":"asdf"},{"id":82,"todos":"do"},{"id":81,"todos":"asdf"},{"id":80,"todos":"asdf"},{"id":79,"todos":"asdf"}]
私のためにこの謎を終わらせることができる人に、前もって感謝します.