آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل درفصل 5

مهدی  8 سال پیش  8 سال پیش
+1 0

با سلام  خسته نباشید

من به یک مشکل عجیب در فصل 5 قسمت 5 (یعنی پاراگراف) افتادم که وقتی میخوام از javascript استفاده کنم و یک قسمتی از صفحه را نمایش بدم اون صفحه نمایش پیدا میکنه اما وقتی روی دکمه کلیک میکنم به صفحه مورد نظر نمیره   در صورتی که dump میکنم مقدار ارایه بهم نشون میدهد

 
<div id="header-wrapper">
<div id="header-top-right">
<img class="profile-image" src="<?=baseUrl()?>/image/empty-profile-24.png">
<span style="margin-right: 5px"><?=$_SESSION['email']?> <?=_header_welcome?></span>
<a style="margin-right: 5px" class="btn-blue" href="<?=fullBaseUrl()?>/user/logout"><?=_btn_logout?></a>
</div>
</div>

<?=paginition('/notes-v2/note/catalog',2,'btn btn-blue','btn',$pageIndex,$pageCount);?>
<br>
<br>
<br>
<hr>
<br>
<br>
<span class="btn btn-blue" onclick="getPage(1)">1</span>
<span>..</span>
<? for ($i = $pageIndex - 3; $i <= $pageIndex + 3; $i++) { ?>
<? if ($i <= 1) {
continue;
} ?>
<? if ($i >= $pageCount) {
continue;
} ?>
<? if ($i == $pageIndex) { ?>
<span class="btn"><?=$i?></span>
<? } else { ?>
<span class="btn btn-blue"onclick="getPage(<?=$i?>)"><?=$i?></span>
<? } ?>
<? } ?>
<span>..</span>
<span class="btn btn-blue" onclick="getPage(<?=$pageCount?>)"><?=$pageCount?></span>
<br>
<br>
<br>
<br>
<br>

<div id="notes">
<ul class="todo-entry">
<li>انجام</li>
<li>حذف</li>
<li>عنوان</li>
<li>توضیحات</li>
<li>زمان وقوع</li>
</ul>

<? if ($records == null){ $records = array(); } ?>
<? foreach ($records as $record){
if ($record['isDone']){
$doneClass = "done";
} else {
$doneClass = "pending";
}
?>
<ul class="todo-entry <?=$doneClass?>">
<li><span onclick="noteToggle(this, <?=$record['note_id']?>)" class="btn">*</span></li>
<li><span onclick="noteRemove(this, <?=$record['note_id']?>)" class="btn">-</span></li>
<li><?=$record['title']?></li>
<li><?=$record['des']?></li>
<li><?=jDate($record['eventTime'],'d M Y ')?></li>
</ul>
<? } ?>

<br>
<br>
<div class="tal">
<a href="/notes-v2/note/submit" class="btn-blue">درج یادآور</a>
</div>
</div>

<script>
function getPage(pageIndex) {
$.ajax('/notes-v2/note/ajaxCatalog/' + pageIndex, {
type: 'post',
dataType: 'json',
success: function (data) {
$("#notes").html(data.html);
}
});
}
function noteToggle(sender, noteId){
sender = $(sender);
var parent = sender.parentsUntil('.todo-entry').parent();

$.ajax('/notes-v2/note/toggle/' + noteId, {
type: 'post',
dataType: 'json',
success: function(data) {
if (parent.hasClass('done')){
parent.removeClass('done');
parent.addClass('pending');
} else {
parent.removeClass('pending');
parent.addClass('done');
}
}
});
}

function noteRemove(sender, noteId){
sender = $(sender);
var parent = sender.parentsUntil('.todo-entry').parent();

$.ajax('/notes-v2/note/remove/' + noteId, {
type: 'post',
dataType: 'json',
success: function(data) {
parent.remove();
}
});
}
</script>
 
 public function ajaxCatalog($pageIndex){

if (!isset($_SESSION['user_id'])){
exit;
}

$userId = $_SESSION['user_id'];

$count=10;
$startIndex=($pageIndex-1) * $count;
$data['records']=NoteModel::catalogByPage($userId , $startIndex , $count);
$recordsCount=NoteModel::countNotes($userId);
$data['pageCount']=ceil($recordsCount/10);//ceil yani rond kardan
$data['pageIndex']=$pageIndex;
ob_start();
View::render("/page/ajaxCatalog.php", $data);
$output = ob_get_clean();


echo json_encode(array(
'status' => true,
'html' =>$output,
));
}
}

0 0
سلام دوست عزیز : متوجه سوالت نشدم روی کدوم دکمه : روی درج یادآور یا روی * و - ؟ (8 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Borhani  8 سال پیش
0 0

اگر درست متوجه شده باشم شما در اجرای لیست مشکل دارین : بنظرم مشکلتون در اجرا نشدن ajaxCatalog($pageIndex)  می باشد 

بدلیل اینکه اصلا جایی این تابع فراخوانی نگردیده است.

شما یادتون باشد که کلیه html رو باید از طریق ajax فراخوانی کنید یعنی در صفحه اجرایی فقط

 id="notes"

و در یک تگ جاوا اسکریپت ajaxCatalog($pageIndex) را فراخوانی نمایید .

0 0
ببخشید متوجه نشدم باید چیکار کنم ؟ (8 سال پیش)
پاسخ به سوال 
مهدی  8 سال پیش
0 0

من تابع ajaxcatalog تعریف کردم  مشکل داخل رندر کردن صفحه هست رندر میشود ولی نمیتوان صفحه عوض کرد مشکل اصلی من داخل

ob_start هست dump که میکنم آرایه نمایش داده میشود ولی  render  میکنم صفحه میتونم ببینم اما با عوض کردن مقدار لیست عوض نمیشود

 
  function getPage(pageIndex) {
$.ajax('/notes-v2/note/ajaxCatalog/' + pageIndex, {
type: 'post',
dataType: 'json',
success: function (data) {
$("#notes").html(data.html);
}
});
}
0 0
ابتدا مقدار pageindex رو چک کن ببین تغییر میکنه یاخیر؟ میتونی با log چک کنی. (8 سال پیش)
0 0
اره بر میگردونه (8 سال پیش)
0 0
اره تغییر میکنه (8 سال پیش)
پاسخ به سوال 
مهدی  8 سال پیش
0 0

با سلام کسی هست منو راهنمایی کنه ؟


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .