Php 使用ajax更新表单
我有一个显示用户信息的表列表。顶部将有一个修正链接。我需要通过Ajax更新表单,而不是转到另一个页面进行更新。 这是我的密码Php 使用ajax更新表单,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我有一个显示用户信息的表列表。顶部将有一个修正链接。我需要通过Ajax更新表单,而不是转到另一个页面进行更新。 这是我的密码 <?php while ($row = mysql_fetch_assoc($displayer)){ echo("<tr><td>First Name</td><td>" . $row['first_name'] . "</td> </tr>");
<?php while ($row = mysql_fetch_assoc($displayer)){
echo("<tr><td>First Name</td><td>" . $row['first_name'] . "</td> </tr>");
echo("<tr><td>Last Name</td><td>" . $row['last_name'] . "</td> </tr>");
echo("<tr><td>Email</td><td>" . $row['email'] . "</td> </tr>");
echo("<tr><td>Country</td><td>" . $row['country'] . "</td> </tr>");
echo "<a class='page' href='amend.php?id=" .urlencode($row['users_id']) . "&firstname=" .urlencode($row['first_name']) . "&lastname=".urlencode($row['last_name']) ."'>Amend Record</a></td></tr>";
?>
有谁能告诉我如何在同一个页面上使用Ajax更新表单。很多细节都需要一个很长的答案……尽管如此,我还是要强调一些重要的出发点 首先,您需要一个JS文件,其中包含一个关于链接的处理程序。 当点击链接时,必须发出一个ajax请求…有多种方法可以做到这一点,但我个人使用jquery的$.ajax…在请求中,您必须收集反映表单输入值的变量…然后将这些值发送到进行验证的PHP脚本,如果验证成功,则更新表单中的相应值在请求中,还必须指定此脚本所在的URL 不过,这个ajax请求由两个重要的回调组成……错误和成功……在这些回调中,您必须编写代码来处理请求成功与否的情况……例如,当您确定在数据库中确实发生了这种情况时,您可以在PHP中对此进行检查,然后以表单形式更新值脚本…PHP脚本回显的任何值都必须使用json_encode完成…您可以使用成功回调的数据参数访问这些值。正如我所说,还有一个错误回调..这是由各种原因触发的…如果URL错误或json未从服务器返回 以上这些仅仅是起点……我正在阐述一种通用方法。
/*AJAX使用jQuery*/
/* AJAX using jQuery */
// attach event to your <a> upon click
$(document).on('click','a.page', function(e) {
e.preventDefault()
var sURL = $(this).attr("href"); // url to call for amend
update( sURL ) // call the function update
});
// update() function that is called after clicking anchor tag
function update( _url )
{
$.ajax({
method: 'POST',
url: _url,
success: function() {
alert("Amend Success)";
},
error: function( c ) {
alert("Internal server error. Check your browser console");
console.log( c.responseText )
}
})
}
//单击后将事件附加到您的
$(文档)。在('click','a.page',函数(e){
e、 预防默认值()
var sURL=$(this).attr(“href”);//用于修改的url
update(sURL)//调用函数update
});
//单击定位标记后调用的update()函数
函数更新(_url)
{
$.ajax({
方法:“POST”,
url:_url,
成功:函数(){
警惕(“修正成功)”;
},
错误:函数(c){
警报(“内部服务器错误。请检查浏览器控制台”);
console.log(c.responseText)
}
})
}
注意:把这个放在标签前面
那有什么问题?