私は一生かけてjquery ajaxのことを理解しようとしています。HTML ダイアログが表示され、情報を入力する必要があります。彼らが「追加」を押すと、データが保存され(call-add_patient.php)、名前が表示される元のページ(「成功」)の部分が下に表示されます。
リストに人がいない場合、何も起こりません (ただし、データベースには入るので、Ajax の誤解のようです)。リストに少なくとも 1 人いる場合は、新しい人が追加されます。
したがって、リストに人がいる場合にのみこれが機能する理由がわかりません。デフォルトの空の人を入れてみましたが、これがうまくいくことを願っていました。そうではありませんでした。
ジャバスクリプト:
$.ajax({
url: 'call-add_patient.php',
type: 'get',
data: {
name: name.val(),
address: address.val(),
city: city.val(),
state: state.val(),
zip: zip.val(),
checked: ids.join(),
CUID: CUID.val(),
losap: losap.val(),
ccnumber: ccnumber.val()
},
dataType: 'json',
cache: false,
success: function(data) {
$("table#users tbody").append("<tr>" + "<td>" + " <a class=\"cjbutton\" style=\"font-size: 6pt;\" href=\"letter/letter.php?UID=" + data.uid + "&losap=" + data.losap + "\">print</a>" + data.name + "</td>" + "</tr>");
},
async: false
});
HTML テーブルを作成する PHP:
print '<table id="users" class="ui-widget" style="width: 100%;"
style="align: left;"><tbody>';
print '<tr><td> </td></tr>';
while ($row_pt = mysql_fetch_assoc($result_pt)) {
print ' <tr width="100%" align="left"><td align="left">';
print ems_print($row_pt['UID']);
print $row_pt['Patient Name'];
print '</td> </tr>';
}
print '</tbody></table> <br/> ';
call-add_patient.php の下部:
echo json_encode(array('uid' => $id, 'name' => $name ));
私は困惑しており、本当に助けが必要です。
編集: これは、動作するはずだと思ったが動作しないコードのチャンクです。call-add_patient.php は問題ではないと思うので含めませんでした (有名な最後の言葉)。「アラート」は適切な名前を提供するので、それは機能していると思います。jQuery で Add table row を読んで、アイデアを模倣しようとしましたが、まだ機能していないようです。
<body>
<?
if( isset( $_REQUEST['submit'] ) )
{
print "here";
?>
<script>
$.ajax({
url: 'call-add_patient.php',
type: 'get',
data:{ name: 'anme'},
dataType: 'json',
success: function(data) {$( "table#users tbody" ).append( "<tr><td>" + data.name + "</td><td></td></tr>" ); alert( data.name ); },
async:false
});
</script>
<?
}
?>
<table id="users">
<tbody>
<tr><td>asdf</td><td>asdf</td></tr>
</tbody>
</table>
<form action="index.php" method="post">
<input type="submit" name="submit">
</form>
</body>