jQuery/json/Ajax -如何从数据成功中找到第一响应
jQuery/json/Ajax - How to find the first response from data success
下面是我的完整代码:
$.ajax({
url: 'CheckColorPrice.php',
type: 'POST',
data: {
url: '<?php echo $LINK;?>',
ColorId: ColorNumber,
ProductUrl: '<?PHP echo $ProductUrlWithoutCode;?>'
},
dataType: 'json',
success: function (data) {
$('.Stock').hide();
$("#PRICE").text("£ " + GetPriceForChildren(data["price"]));
var PoundPrice = GetPriceForChildren(data["price"]);
var lev = <?PHP echo $PoundCurrency; ?> * GetPriceForChildren(data["price"]);
lev = lev.toFixed(2);
$("#lev").text(lev + " лв.");
Prices = GetPriceForChildren(data["price"]);
PreOrder = data.preorder;
if(PreOrder != "") {
$("#PlaceToCart").hide();
$("#PreOrderCart").show();
$("#PreOrderSpan").show();
$("#AdditionalPurchaseInfo").html("<span id='PreOrderSpan'><b style='color: #DF0303;'>Този продукт е със статус Pre-Order и не може да бъде поръчан преди:</b> <b>" + data.preorder + "</b><b>.<br><a href=/pomosht target=_blank> Повече информация за Pre-Order продукти.</a></b></span>");
$('.Stock').hide();
}
if(PreOrder == "") {
$("#PreOrderCart").hide();
$("#PlaceToCart").show();
$("#PreOrderSpan").hide();
}
levs = lev;
$("#PRODUCTPRICE").val(lev);
$("#POUNDPRICE").val(PoundPrice);
var AutoIncreasment = 0;
$( ".LittleThumbs" ).remove();
$( ".FancyThumbs" ).remove();
$('.SizeButtons').remove();
$.each(data.thumbnails, function(index, thumbnails) {
$('#ThumbnailHolder').append('<a rel="example_group" title="<?PHP echo $name;?>" class="FancyBox FancyThumbs" href="http://images.sportsdirect.com/images/products/' + thumbnails + '"><img src="http://images.sportsdirect.com/images/products/' + thumbnails + '" class="LittleThumbs" BigImageLink="http://images.sportsdirect.com/images/products/' + thumbnails + '"></a>');
});
$.each(data.sizenames, function(index, sizenames) {
$('.SizeButtonsHolder').append('<div class="SizeButtons" data-title="'+ sizenames +'" data-number="'+ (AutoIncreasment++) +'">'+ sizenames +'</div>');
});
$('.ColorImagesNOColor').fadeOut();
$("#Broi").val("1");
$('#LoadingImage').hide();
}
});
CheckColorPrice.php的内容:
<?PHP
$url = $_POST['url'];
$ColorId = $_POST['ColorId'];
$ProductUrl = $_POST['ProductUrl'];
$SizeNumber = $_POST['SizeNumber'];
$url = "$ProductUrl?colcode=$ColorId";
if(isset($_POST['url']))
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIE, "ChosenSite=www; SportsDirect_AnonymousUserCurrency=GBP; language=en-GB");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($curl, CURLOPT_VERBOSE, true);
$str = curl_exec($curl);
curl_close($curl);
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML($str);
$xpath = new DOMXpath($doc);
$DataVariants = $xpath->query('//span[@class="ImgButWrap"]/@data-variants')->item(0)->nodeValue;
$jsonStart = strpos($DataVariants, '[');
$jsonEnd = strrpos($DataVariants, ']');
$collections = json_decode(substr($DataVariants, $jsonStart, $jsonEnd - $jsonStart + 1));
$result = array();
$SizeNames = array();
$t = $xpath->query('//ul[@id="piThumbList"]//li//a/img');
foreach ($t as $Sentry) {
$Thumbs = $Sentry->getAttribute("src");
$FindT = array('http://images.sportsdirect.com/images/products/','_piat_','_pit.jpg');
$RemT = array('','_l_','_l.jpg');
$BigImageLink = str_replace($FindT, $RemT, $Thumbs);
$result['thumbnails'][] = $BigImageLink;
}
foreach ($collections as $item) {
$ColVarId = $item->ColVarId;
if ($ColVarId == $ColorId){
$result['preorder'][0] = $item->PreOrderAvailableDate;
foreach ($item->SizeVariants as $size) {
$result['sizenames'][] = $size->SizeName;
$SellPrice[] = $size->ProdSizePrices->SellPrice;
$Sprice = $SellPrice[0];
$healthy2 = array('£',' ','Â');
$yummy2 = array('','','');
$price = str_replace($healthy2, $yummy2, $Sprice);
$result['price'][0] = $price;
}
}
}
echo json_encode($result);
}
?>
我想知道的是关于这部分:
$.each(data.thumbnails, function(index, thumbnails) {
$('#ThumbnailHolder').append('<a rel="example_group" title="<?PHP echo $name;?>" class="FancyBox FancyThumbs" href="http://images.sportsdirect.com/images/products/' + thumbnails + '"><img src="http://images.sportsdirect.com/images/products/' + thumbnails + '" class="LittleThumbs" BigImageLink="http://images.sportsdirect.com/images/products/' + thumbnails + '"></a>');
});
我如何选择第一个响应并运行alert('This is the first response!');
,然后执行所有其他操作?
亲切的问候。
我这样解决了我的问题:
var propCount = 0;
$.each(data.thumbnails, function(index, thumbnails) {
propCount++;
if(propCount == 1) {
$('#ThumbnailHolder').append('<img src="http://images.sportsdirect.com/images/products/' + thumbnails + '" class="LittleThumbs" BigImageLink="http://images.sportsdirect.com/images/products/' + thumbnails + '">');
} else {
$('#ThumbnailHolder').append('<a rel="example_group" title="<?PHP echo $name;?>" class="FancyBox FancyThumbs" href="http://images.sportsdirect.com/images/products/' + thumbnails + '"><img src="http://images.sportsdirect.com/images/products/' + thumbnails + '" class="LittleThumbs" BigImageLink="http://images.sportsdirect.com/images/products/' + thumbnails + '"></a>');
}
});
相关文章:
- 通过mvc中的ajax动作链接获取关于成功的响应头
- Backbone save()响应成功
- 如何在jquery ajax成功html响应中找到输入隐藏元素
- 在AJAX成功响应中执行Javascript代码(在单独的文件中)
- ajax成功响应后如何更改html类
- AJAX 调用在获得响应并成功执行时会冻结浏览器一段时间
- Jquery 自动完成插件未显示成功响应
- Ajax响应成功,但无法使用数据(未捕获语法错误:意外标识符)
- 如何从成功中获取 ajax 响应并使用 jQuery 将其分配给变量中
- jQuery$.ajax方法.成功:使用响应数据的函数
- AJAX 成功:函数(响应)返回空值
- 当 AJAX 响应成功时清除 jquery 成功/错误消息 span 类
- 无法在离子模板中显示成功的 angularjs $http从本地服务器获得响应
- 并发 jquery jsonp 响应被发送到错误的成功处理程序
- Ajax 完整函数即使 json 响应成功也不会设置背景图像
- jquery POST 响应成功,但数据为空
- 云代码多次保存然后响应成功
- 在使用php echo的响应成功调用AJAX后附加数据并添加类
- 我如何在ExtJS 6中响应成功的网格加载并检查响应
- Cordova:如何在REST响应成功时导航到页面