Javascript php while循环中未更新Ajax响应
我在弄清楚为什么这个ajax响应没有正确更新时遇到了一个小问题。我有一个php while循环,它以文本格式列出了我正在使用的Gallery。它从php页面获取详细信息,但只针对一个结果,因此当您将鼠标悬停在名称上时,会弹出一个qtip工具提示框,以便您可以编辑库的名称。问题是它只为循环中的所有结果列出一个结果 PHP和HTMLJavascript php while循环中未更新Ajax响应,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我在弄清楚为什么这个ajax响应没有正确更新时遇到了一个小问题。我有一个php while循环,它以文本格式列出了我正在使用的Gallery。它从php页面获取详细信息,但只针对一个结果,因此当您将鼠标悬停在名称上时,会弹出一个qtip工具提示框,以便您可以编辑库的名称。问题是它只为循环中的所有结果列出一个结果 PHP和HTML <?php $MemberGalleriesQuery = $bapcity->query("SELECT * FROM C
<?php
$MemberGalleriesQuery = $bapcity->query("SELECT * FROM CroMemberRetailGalleries WHERE UserID='".$_SESSION['user_id']."' ORDER BY GalleryID DESC");
$MemberGalleriesCount = $MemberGalleriesQuery->num_rows;
if ( $MemberGalleriesCount )
{
$BaseHeight = 150;
$GalleriesBoxHeight = $BaseHeight + ( 20 * $MemberGalleriesCount );
echo '
<div id="ManageGalleries" style="height: '.$GalleriesBoxHeight.'px" align="center">
<div id="ManageGalleriesHeader">Manage Galleries</font></div><br><br>
<font color="#000000"><b>Click Gallery To Edit</b></font><br><br>
';
while($GalleryData = $MemberGalleriesQuery->fetch_assoc())
{
echo '>> <b><a class="EditGallery" href="Crowork.Backend/Crowork.EditGallery.php?action=EditGallery&gallerykey='.$GalleryData['GalleryID'].'">'.$GalleryData['GalleryName'].'</a></b> <<<br>';
}
echo '<br><br></div>';
}
$MemberGalleriesQuery->free();
?>
Crowork.Backend/Crowork.EditGallery.php的内容
if ( isset( $cleanGet['action'] ) && $cleanGet['action'] == 'EditGallery' ){
$MemberGalleriesQuery = $bapcity->query("SELECT * FROM CroMemberRetailGalleries WHERE GalleryID='".$cleanGet['gallerykey']."' AND UserID='".$SessionUserID."' ORDER BY GalleryID DESC");
$MemberGalleriesCount = $MemberGalleriesQuery->num_rows;
if ( $MemberGalleriesCount )
{
$GalleryData = $MemberGalleriesQuery->fetch_assoc();
}?>
<form action="Crowork.Backend/Crowork.EditGallery.php?action=DoEditGallery&gallerykey=<?php echo $GalleryData['GalleryID']?>" method="post">
<input type="hidden" name="GalleryName" value="<?php echo $GalleryData['GalleryName']?>">
<input type="hidden" name="GalleryID" value="<?php echo $GalleryData['GalleryID']?>">
<input type="submit" name="DeleteGallery" value="Delete Gallery">
</form>
<form action="Crowork.Backend/Crowork.EditGallery.php?action=DoEditGallery&gallerykey=<?php echo $GalleryData['GalleryID']?>" method="post">
<table border="0" width="100%">
<tr>
<td colspan="2" align="center"><font size="-1"><b>NOTE:</b> Letters & Numbers Only</font></td>
</tr>
<tr>
<td>Name:</td>
<td><input type="text" name="GalleryName" size="30" value="<?php echo $GalleryData['GalleryName']?>"></td>
</tr>
<tr>
<td align="right" colspan="2">
<input type="hidden" name="OriginalGalleryName" value="<?php echo $GalleryData['GalleryName']?>">
<input type="hidden" name="GalleryID" value="<?php echo $GalleryData['GalleryID'] ?>">
<input type="submit" name="EditGallery" value="Edit Gallery">
</td>
</tr>
</table>
</form>
<?php }?>
if(isset($cleanGet['action'])&&$cleanGet['action']=='EditGallery'){
$MemberGallerySquery=$bapcity->query(“从CroMemberRetailGalleries库中选择*,其中GalleryID='”。$cleanGet['gallerykey']。”,UserID='”。“$SessionUserID.”按GalleryID描述排序”);
$MemberGalleriesCount=$MemberGalleriesQuery->num\u行;
如果($MemberGalleriesCount)
{
$GalleryData=$membergallerysquery->fetch_assoc();
}?>
每次调用$('.EditGallery').$('.EditGallery')。是数组时,您都需要将循环中对$('.EditGallery')的所有引用更改为$(如下所示):
您可能需要创建动态id,以便调用适当的ajax。
请修改您的ajax调用,如下所示
$gid=$GalleryData['GalleryID'];
echo '>> <b><a onclick="editgalary($gid)" id="EditGallery_$gid" href="Crowork.Backend/Crowork.EditGallery.php?action=EditGallery&gallerykey='.$GalleryData['GalleryID'].'">'.$GalleryData['GalleryName'].'</a></b> <<<br>';
试着让我知道试着:
$('.EditGallery').each(function()
{
$(this).qtip({
content: {
text: "Loading...",
ajax: {
url:$(this).attr('href'),
type: "GET",
success: function(data, status) {
this.set('content.text', data);
}
}
},
hide: {
fixed: true,
delay: 300
},
style: 'wiki'
});
$(this).qtip('click', true);
});
你能分享一下Crowork.Backend/Crowork.EditGallery.php中的内容吗?
我已经用Crowork.EditGallery.phpI的内容更新了我的帖子,就像加载…部分一样,但是用更新的代码在工具提示中显示了整个页面。his.set('content.text',$(data.find('body').html());
替换“body”使用您的特定tagHi Madalin,我希望您的日子过得很好。我在代码中替换了它,并将正文更改为我的特定标记。EditGallery,但它只是在qtip工具提示中一直说加载…。这解决了问题…非常感谢!!Mat Taylor,我将$('.EditGallery')的所有实例替换为$(此),除了一个实例$(“.EditGallery”)。每个。但是,它破坏了工具提示,现在它根本不显示。从我所看到的,您没有类EditGalleryHey Mat的元素,是的,先生,我在锚标记中将类设置为EditGallery。Nitesh,好概念!但是,它破坏了工具提示,所以它根本不显示。在锚标记中添加标题属性。它将根据您的需要用作工具提示。
var link = $(this).attr('href'); //Gets link url
$gid=$GalleryData['GalleryID'];
echo '>> <b><a onclick="editgalary($gid)" id="EditGallery_$gid" href="Crowork.Backend/Crowork.EditGallery.php?action=EditGallery&gallerykey='.$GalleryData['GalleryID'].'">'.$GalleryData['GalleryName'].'</a></b> <<<br>';
function editgalary(galaryid){
var link = $('#EditGallery_'+galaryid).attr('href');
//ajax code as it is.
}
$('.EditGallery').each(function()
{
$(this).qtip({
content: {
text: "Loading...",
ajax: {
url:$(this).attr('href'),
type: "GET",
success: function(data, status) {
this.set('content.text', data);
}
}
},
hide: {
fixed: true,
delay: 300
},
style: 'wiki'
});
$(this).qtip('click', true);
});