So let me give you an overview of the problem I am facing. I am working on a project which has handpicked project as shown below on home page.click to see image
So now I want to show all the associated properties with the specific projects like this click to see image
I have a databse table named "properties" which has a column "project_id". I want this "project_id" to be dynamic . Right Now I am entering the project id manually i.e. 1,2,3,4.
This is the ajax I am using in my blade file
<script>
$(document).ready(function(){
getProperties();
function getProperties() {
$.ajax({
url:'/handpickedproperties/{$id}',
type:'POST',
data:{'property_type':property_type},
success:function(response){
if(response.success){
var str = '';
stringlength = 135;
if($( window ).width()<1363)
var stringlength = 100;
$.each(response.data, function(k,v){
description = v.description;
if (description.length > stringlength)
description = description.substr(0,stringlength)+'.....more';
photos = JSON.parse(v.images);
if(jQuery.isEmptyObject(photos)){
image_count = 0;
cover_photo = '/images/default/photo not available.png';
}
else{
image_count = Object.keys(photos['withPhotos']).length;
cover_photo = photos.coverPhoto;
}
area_conversion = JSON.parse(v.area_conversions);
str += '<div class="property-box" data-aos="fade-up">\
<div class="pic-area">\
<figure><img src="'+cover_photo+'">\
<span class="photo-count">\
<img src="images/photos-icon.png">'+image_count+'</span>\
</figure>\
</div>\
<div class="listing-property-details">\
<a href="/viewPropertyDetails/'+v.id+'">\
<h5>'+v.name+' in '+v.address+'</a><a href="javascript: void(0)" onclick="addFavourite(`'+v.id+'`)" class="wishlist" style="margin-top:0"><img src="/images/home/heart2.png" id="pic_'+v.id+'"></a><a href="/viewPropertyDetails/'+v.id+'"></h5>\
<span class="price-box">\
<strong>'+v.currency+v.price+v.price_unit+'</strong>\
'+v.currency+' '+v.price_per_area+'/sq.ftadsds.\
</span>\
<span class="area-box">\
<img src="/images/listing-area.png">\
<strong><span class="sq_ft" style="width:75%;display:inline-block;">'+v.area_per_sq_ft+' sq.ft.</span>\
<span class="sq_mt" style="width:75%;display:none;">'+area_conversion.sq_mt+' sq.mt.</span>\
<span class="sq_yrd" style="width:75%;display:none;">'+area_conversion.sq_yrd+' sq.yrd.</span></strong>\
('+v.carpet_area+') Carpet Area\
</span>\
<span class="bed-box">\
<img src="/images/listing-bed.png">\
<strong>'+v.bedroom+' BHK</strong>\
</span>\
<span class="bath-box">\
<img src="/images/listing-bath.png">\
<strong>'+v.bathroom+' Bath</strong>\
</span>\
<div class="clear"></div>\
<p class="property-brief" style="color:black;">'+description+'</p></a>';
if(v.featured == 1)
str += '<label style="margin-right: 5px;" class="featured-highlight-buttton">Featured</label>';
if(v.verified == 1)
str += '<label style="margin-right: 5px;" class="highlight-buttton">Verified</label>';
if(v.construction_status == 3)
str += '<label style="margin-right: 5px;" class="highlight-buttton">Under Construction</label>';
if(v.construction_status == 4)
str += '<label style="margin-right: 5px;" class="highlight-buttton">Ready to Move</label>';
// <label class="highlight-buttton">Resale</label>
str += '</div>\
<div class="listing-box-bottom">\
<span>\
Posted on '+v.creation_date+' by '+v.created_by+'\
<a href="/total-listed-properties" target="_blank"><strong>'+v.posted_by+'</strong></a>\
</span>\
<a href="#" onClick = "contactDetails(`'+v.id+'`);">Contact '+v.posted_by+'</a>\
</div>\
</div>';
});
$('#results_number').empty();
$('#results_number').append(Object.keys(response.data).length);
$('#property-data').append(str);
$('#no-result-found-div').hide();
}
else{
$('#property-data').empty();
$('#results_number').empty();
$('#results_number').append(0);
$('#no-result-found-div').show();
}
}
});
}
});
</script>
enter code here
This is my controller Code
public function handpickedProperties(Request $request,$id)
{
try
{
$data = $request->all();
$validator = Validator::make($data, [
]);
if ($validator->fails())
return $this->sendError("Validation Failure",$validator->errors(),403);
$price_min = 0;
$price_max = 10000000;
$search = PropertyServices::fetchHandpickedProperties($request->search,$request->type,$request->city,$request->property_type,$price_max,$price_min,$id);
if(is_array($search))
return view('site.handpicked-properties');
else if($search == 0)
return $this->sendError('Property not found',[],206);
else if($search == null)
return $this->sendError('Property not found. Due to Exception in Service',[],500);
}
catch(Exception $e)
{
Log::error('Exception encountered. PropertyController->searchProperties Exception: '.$e);
return $this->sendError('Property not found. Due to Exception.',[],500);
}
}
enter code here
This is the code I have used in listing
public function fetchHandpickedProperties($search,$type,$city,$property_type,$price_max,$price_min,$id)
{
{
try
{
$result = Property::where('project_id','2')
->select('description','images','id','address','name','currency','price','price_unit','price_per_area','area_per_sq_ft','area_conversions','bedroom','bathroom','created_by','posted_by',\DB::raw('DATE_FORMAT(created_at,"%M-%d-%Y") as creation_date'),'carpet_area','verified','construction_status','featured','lat','long')
->get()->toArray();
return $result;
}
catch(Exception $e)
{
Log::error('Exception encountered. PropertyServices->searchProperty Exception: '.$e);
return $result = null;
}
}
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire