مشکل در بخش 9
سلام ، تو این آموزش همه چی خوب پیش میرفت تا اینکه کار به ajax کشیده شد تابع search اطلاعات داخل دیتابیس خالی بر می گردونه یعنی لیستی از محصولات در کار نیست دستورات مو به مو نشستم چک کردم خطای نوشتاری هم ندیدم مشکل از کجای کاره ؟ روی سرور واقعی دارم کار میکنم لوکالشو اصلا درست نکردم مشکل می تونه از این باشه ؟
این خطا زمانی که می خوام با سرور اصلی به صفحه login برم نشون داده میشه ، وقتی هم با سرور لوکال به این صفحه میرم کلا خطای 404 نشون میده کلا داخل سرور لوکال باید فایل htaccess حذف بشه تا صفحه سایت بالا بیاد
فایل view.php
<?php
class View {
public static function render($filePath, $data = array()){
extract($data);
ob_start();
require_once(getcwd() . "/mvc/view" . $filePath);
$content = ob_get_clean();
require_once(getcwd() . "/theme/default.php");
}
public static function renderPartial($filePath, $data = array()){
extract($data);
require_once(getcwd() . "/mvc/view" . $filePath);
}
}
قسمت Network
قسمت Console
کد فایل home.php
<div>
<strong>به ترتیب</strong>
<select id="sortType">
<option value="price ASC">ارزانترین ها</option>
<option value="price DESC">گرانترین ها</option>
<option value="rate DESC">محبوبترین ها</option>
<option value="creationTime ASC">قدیمی ها</option>
<option value="creationTime DESC">جدیدترین ها</option>
</select>
<strong style="margin-right:20px ">جستجو</strong>
<input value="" placeholder="جستجو" id="keyword">
<div style="margin-right:20px" class="dib">
<span id="displayAsList" class="icon ic-list" style="font-size: 10pt ;cursor: pointer" ></span>
<span id="displayAsGrid" class="icon ic-table2" style="font-size: 10pt;cursor: pointer"></span>
<input id="viewType" type="hidden" value="grid">
</div>
</div>
<script>
$("#sortType").on('change',function() {
reloadData();
});
$("#displayAsList").on('click',function() {
$('#viewType').val('list');
reloadData();
});
$("#displayAsGrid").on('click',function() {
$('#viewType').val('grid');
reloadData();
});
$("#keyword").on('keyup',function() {
alert("A");
reloadData();
});
function reloadData(){
var sortType = $("#sortType").val();
var keyword = $("#keyword").val();
var viewType = $("#viewType").val();
viewType = viewType || 'grid';
$.ajax({
url: "/product/search",
method: 'POST',
data:{
sortType:sortType,
keyword:keyword,
viewType:viewType
}
}).done(function(output) {
$("#products").empty();
$("#products").append(output);
});
}
$(function(){
reloadData();
});
</script>
<div id="products">
</div>
کد فایل product.php
<?php
class ProductController {
public function search() {
$sortType=$_POST['sortType'];
$keyword=$_POST['keyword'];
$viewType=$_POST['viewType'];
$db=Db::getInstance();
$products = $db->query("SELECT * FROM pym_product WHERE title LIKE '%$keyword%' ORDER BY $sortType");
$data['products']=$products;
if($viewType=='grid') {
View::renderPartial("/payment/products-grid.php", $data);
}else{
View::renderPartial("/payment/products-linear.php", $data);
}
}
}
کد فایل
productPanel-linear.php
<? foreach ($products as $product){ ?>
<div class="productPanel-linear">
<div class="productThumbWrapper-linear" >
<?
if($product['hasCover'] != 1){
$path="/image/products/default_t.jpg";
}else {
$path="/image/products/".$product['product_id']."_t.jpg";
}
?>
<img src="<?=$path?>" class="productThumb-linear">
</div>
<div class="productPanelRightSide">
<span class="productName-linear"><?=$product['title']?></span>
<div >
<span class="currentPrice-linear"><?=$product['price'] - $product['price'] * $product['discount'] / 100?>$</span>
<? if ($product['discount']>0){?>
<span class="oldPrice-linear"><?=$product['price']?>$</span>
<? } ?>
</div>
<p class="productBrief-linear"><?=$product['brief']?></p>
<div class="productBtnWrapper-linear">
<span class="wishBtn-linear ic-heart" style="margin-left: 10px "></span>
<div class="addToCartBtn-linear">
<span class="icon ic-plus"></span>
<span> اضافه به سبد خرید</span>
</div>
</div>
</div>
</div>
<? } ?>
سلام دوست عزیز مشکلت حل شد ؟
اگه مشکلی که داشتی حل شد اینجا بنویس ایرادت از چی بوده تا اگه بچه های دیگه هم به این مشکل برخورد کردن و به این پست رجوع کردن مشکلشون حل شه
موفق و موید :)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .