۱۰ حسینی
عدم اضافه شدن تسک به ui
جامعه برنامه نویسی وب ایجاد شده در ۰۷ آذر ۱۴۰۲

سلام من تسک اضافه می‌کنم اینتر که می‌زنم به دی تا بیس اضافه می‌شود ولی در سایت نمایش نمی‌دهد نمی‌دانم مشکل کجاست ممنون میشم راهنمایم کنید 

سلام،

بدون قطعه کد نمیتوان تشخیص داد.

محسن موحد ۰۷ آذر ۱۴۰۲، ۱۷:۰۵
<?php
include "../bootstrap/init.php";
if(!isAjaxRequest()){
    diepage('invalid request');
}
if(!isset($_POST['action']) || empty($_POST['action'])){
    diepage('invalid action');
}
switch($_POST['action']){
    case "addFolder";
     if(!isset($_POST['folderName']) || strlen($_POST['folderName']) < 3){
         echo 'نام فولدر باید بزرگتر ار 2 باشد';
         die();
     }
     echo addFolder($_POST['folderName']);
    break;
    case "addTask":
        $taskTitle = $_POST['taskTitle'];
        $folderId = $_POST['folderid'];
        if(!isset($folderId) || empty($folderId)){
            echo 'فولدر را انتخاب کنید';
            die();
        }
        if(!isset($folderId) || strlen($taskTitle) < 3){
            echo 'عنوان تسک باید بزرگتراز 3 باشد';
            die();
        }
        echo addTask($taskTitle,$folderId);
        break;
        default:
        diepage('invalid avtion!');
}
var_dump($_POST);
حسینی ۰۸ آذر ۱۴۰۲، ۱۱:۴۵
          <ul>
            <?php if(sizeof($tasks) > 0 ) : ?>
          <?php foreach($tasks as $task): ?>
            <li class="<?= $task->is_done ? 'checked' :''; ?>">
            <i class="fa <?= $task->is_done ? 'fa-check-square-o':'fa-square-o';?>">
            </i><span><?=$task->title?></span>
              <div class="info">
                <span style="margin-right: 12px;font-size:10px;">create at <?= $task->created_at?></span>
                <a href="?delete_task=<?= $task->id?>" style="color: red;float: right; text-decoration: none;" onclick="return confirm('are you sure to deleted?')">x</a>
              </div>
            </li>
            <?php endforeach; ?>
            <?php else: ?>
              <li>no task here...</li>
              <?php endif; ?>
          </ul>
حسینی ۰۸ آذر ۱۴۰۲، ۱۱:۴۶
<?php
defined('BASE_PATH') OR die("premision denied!");
function getCurrentUserId(){
    return 1;
}
function deleteFolder($folder_id){
    global $pdo;
    $sql = "delete from folders where id =$folder_id";
    $stmt=$pdo->prepare($sql);
    $stmt->execute();
    return $stmt->rowCount();
}
function addFolder($folder_name){
    global $pdo;
    $current_user_id =getCurrentUserId();
    $sql = "INSERT INTO folders (name,user_id) VALUES (?,?); ";
    $stmt=$pdo->prepare($sql);
    $stmt->execute([$folder_name,$current_user_id]);
    return $stmt->rowCount();
}
function getFolders(){
    global $pdo;
    $current_user_id =getCurrentUserId();
    $sql = "select * from folders where user_id =$current_user_id";
    $stmt=$pdo->prepare($sql);
    $stmt->execute();
    $record=$stmt->fetchAll(PDO::FETCH_OBJ);
    return $record;
}
/*** tasks function */
function getTasks(){
    global $pdo;
    $folder=$_GET['folder_id'] ?? null;
    $folderCondition = '';
    if(isset($folder) and is_numeric($folder)){
        $folderCondition = "and folder_id=$folder";
    }
    $current_user_id =getCurrentUserId();
    $sql = "select * from tasks where user_id =$current_user_id $folderCondition";
    $stmt=$pdo->prepare($sql);
    $stmt->execute();
    $record=$stmt->fetchAll(PDO::FETCH_OBJ);
    return $record;
}
function deletetask($task_id){
    global $pdo;
    $sql = "delete from tasks where id =$task_id";
    $stmt=$pdo->prepare($sql);
    $stmt->execute();
    return $stmt->rowCount();
}
function addTask($taskTitle,$folderId){
    global $pdo;
    $current_user_id =getCurrentUserId();
    $sql = "INSERT INTO tasks (title,user_id,folder_id) VALUES (?,?,?); ";
    $stmt=$pdo->prepare($sql);
    $stmt->execute([$taskTitle,$current_user_id,$folderId]);
    return $stmt->rowCount();
}
حسینی ۰۸ آذر ۱۴۰۲، ۱۱:۴۷

سلام اولی ajaxhandler است دومی script‌ها سومی کد‌های sql

حسینی ۰۸ آذر ۱۴۰۲، ۱۱:۴۸

سلام دوباره اون مشکل حل شد الان من تسک که اضافه می‌کنم تو هر فولدری میزنم همشون میره تو یک فولدر

مثلا من توی فولدر کار تسک بزنم یا هر فولدر دیگه میرن توی فولدر مثلا دانش آموزان قرار میگیرد نمی‌دونم چرا من کد‌ها را بالا نیز گذاشتم هر جایی را لازم بود بگید بزارم ممنون  

حسینی ۰۸ آذر ۱۴۰۲، ۱۲:۱۳

احتمالا یکی از شروط داخل tpl رو بجای == از = استفاده کردید. وقتی از طریق ajax مقدار ارسال میشه همیشه یک مقدار ثابت ارسال میشه. آیا اینطور هست؟ inspect سربرگ network رو باز کنید. عملیات رو انجام بدید. میبینید یک درخواست جدید ارسال میشه. روش کلیک کنید و از باکس سمت راست Payload ببینید چه مقادیری به سمت سرور ارسال شده است. اگر مقادیر درستی ارسال شده بود باید کدهای سمت سرورو به ترتیب بررسی کنید وگرنه کدهای کلاینت.

محسن موحد ۰۹ آذر ۱۴۰۲، ۰۳:۲۳

سلام کد‌های tpl مشکلی نداشت اون دومی که گفتین رو رفتم payload را پیدا نکردم 

 

حسینی ۱۰ آذر ۱۴۰۲، ۱۴:۵۹

عکس نمیشه گذاشت تو سایت 

اون فولدر که توش تسک ساخته نمیشه را انتخاب کردم بعد تسک اضافه کردم درخاست‌های ارسال میشه ولی اون تسک تو یک فولدر دیگه ساخته میشه در کل هر چی تسک می‌سازم در یک فولدر همشون قرار می‌گیرد 

حسینی ۱۰ آذر ۱۴۰۲، ۱۵:۰۵