我有一份代表商店的记录清单。
表格如下:
<tbody>
<?
$sql = ...//sql to get list of shops
...
while($row = mysql_fetch_array($sql)) {
$i++;
//puts in several variables contents of sql fields
...
?>
<tr id="<?=$id_branch;?>" <? if($i==1) echo 'class="current_active"';?>>
<td ...(styling)...<span id="th_shopname_<?=$id_branch;?>"><?=truncate($shop_name,40);?></span></td>
<td ...(styling)...<span ...id="th_address_<?=$id_branch;?>"<?=truncate($address,25);?></span></td>
etc. etc
<? } ?>
当您点击其中一个时,第二部分会通过ajax帖子填充详细信息,并且当前记录会使用当前活动类进行丰富。
$(document).on('click', 'table tbody tr', function(e) {
var row_id = $(this).attr("id");
if($("#"+row_id).hasClass("current_active")) {
}
else {
$('table tbody tr').removeClass("current_active");
$("#"+row_id).addClass("current_active");
$.ajax({
type: 'POST',
url: "ajax/account_details_container.php",
data: {richiesta_id: row_id},
dataType: 'html',
success: function(html){
$("#account-details-container").html(html);
/* populates account-details-container*/
etc etc
},
});
用户可以修改第二部分,然后按SAVE按钮,调用另一个ajax帖子以启动更新
$("#shop_edit_form").submit(function(e)
{var postData = $(this).serializeArray();
$.ajax(
{
url : "ajax/edit_shop.php",
type: "POST",
data : postData,
dataType: "json",
success:function(data, textStatus, jqXHR)
{
...changes some styling...
...modifies first table row
$("#th_shopname_"+data.id_shop).text(data.shop_name);
$("#th_address_"+data.id_shop).text(data.address);
$("#th_city_"+data.id_shop).text(data.city);
$("#th_phone_"+data.id_shop).text(data.phone);
$("#th_contact_"+data.id_shop).text(data.contact);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert("An error occurred. Please try again or contact administrator.");
}
});
e.preventDefault(); //STOP default action
});
现在一旦我登陆页面,一切都运作良好。用户可以编辑详细信息,然后提交并运行。
BUT
第二个ajax帖子STOPS WORKING,或者如果第一个ajax帖子刚刚被触发,似乎甚至不会被调用。两个ajax帖子属于不同的动作,不会自动一个接一个地启动,但是如果我在第一个表中的不同记录上clic,那么从一个记录切换到另一个记录,从而启动&#39; onclick表...& #39;发布,然后我通过调用第二个ajax帖子进行修改并尝试保存IT DOESN&#39; T RUN AT ALL。此外,在这种情况下,页面似乎重新加载(我不知道是作为原因还是由于问题的结果)。是否有任何理由可以在另一个ajax帖子之后立即调用ajax帖子?
答案 0 :(得分:0)
不,只要您不关心响应是否以某种随机顺序返回,您就可以在ajax上执行ajax。您希望运行的onclick代码是否被响应html覆盖?响应错误,阻塞页面使其停止工作?您是否按F12查看发生的错误?