🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی رضوی
مشکل در Ajax
جامعه پی اچ پی ایجاد شده در ۰۲ خرداد ۱۳۹۹

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

 

کد هایی ک نوشتم به این صورت هستش

 

<form action="process/folder.php" method="POST" id="form-folder">
                    <input type="text" id="nameFolder"  placeholder="نام فولدر خود را بنوسید ... " name="name">
                    <input type="text" id="labelFolder" placeholder="برچسب  فولدر خود را بنوسید ... " name="label">
                    <button id="addFolder">اضافه کردن </button>
                </form>

فایل فرم html اضافه کردن فولدر

function addFolder($name,$label){
    global $pdo;
    $currentUser = currentUser();
    $sql="INSERT INTO `tbl_folder` (`name`,`label`,`user_id`) VALUES (:name,:label,:id) ";
    $stmt=$pdo->prepare($sql);
    $stmt->execute(['name'=>$name,'label'=>$label,'id'=>$currentUser]);
    return $pdo->lastInsertId();
}

تابع addFolder

    $(document).ready(function () {
        $("#addFolder").click(function (e) {
            e.preventDefault();
            var input=$("#nameFolder");
            var label=$("#labelFolder");
            var form_folder=$("#form-folder");
            $.ajax({
                url:"process/folder.php",
                type:"post",
                data:form_folder.serialize(),
                success:function (res) {
                    if(res){
                        $(`<li class='list-item'><a href='?folder_id=${res}' } ><i class='fa fa-folder icon-style'></i> ${input} </a></li>`).appendTo('.folder-list');
                    }else
                    {
                        alert(res);
                    }
                }
            });
        })
    })

کد ajax من هستش

کار میکنه اما مشکلی ک هست وقتی اضافه میکنم اول

 

[object,object]

نشون میده رو صفحه بعد که رفرش میکنم تازه مقدارم میاد همه چیش اوکیه اضافه میکنه  اما حس میکنم یک جای کار اشتباهه

سلام دوست عزیز

کد افزودن فولدر شما مشکل داره (شما در بخش اجرای درخواست execute نام پارامترها رو اشتباه وارد کردین)

به اینصورت ویرایش کنید:

function addFolder($name,$label){
    global $pdo;
    $currentUser = currentUser();
    $sql="INSERT INTO `tbl_folder` (`name`,`label`,`user_id`) VALUES (:name,:label,:id) ";
    $stmt=$pdo->prepare($sql);
    $stmt->execute([':name'=>$name,':label'=>$label,':id'=>$currentUser]);
    return $pdo->lastInsertId();
}

در کد جاوااسکریپت هم در قسمت افزودن فولدر به لیست باید مقدار فیلد رو بگیرید، در صورتی که شما آبجکت فیلد رو جایگذاری کردین

به اینصورت ویرایش کنید:

$(`<li class='list-item'><a href='?folder_id=${res}' } ><i class='fa fa-folder icon-style'></i> ${input.val()} </a></li>`).appendTo('.folder-list');

خط ابتدایی بررسی لود شدن کامل صفحه رو به اینصورت ویرایش کنید:

jQuery(document).ready(function ($) {

 

علیرضا دهکار ۰۲ خرداد ۱۳۹۹، ۱۵:۵۱