راکت
حل شده

عدم آپلود عکس در CKEDITOR برای چند TextArea همزمان

4 پاسخ

با سلام

دوستان بنده نسخه ۴ CkEditor رو روی پروژه ام لود کردم
زمانی که داخل صفحه و فرم فقط یک TextArea دارم، عکسی رو که برای آپلود انتخاب میکنم، به درستی آپلود میشه
ولی زمانی که داخل صفحه م چند تا TextArea داشته باشم، آپلود عکس فقط برای TextArea اول کار میکنه و برای Textarea های دیگه وقتی عکس رو انتخاب میکنی هیچ اتفاقی نمی افته

ممنون میشم مثل همیشه راهنمایی کنید

<textarea name="desc" id="desc-input" placeholder="متن بیوگرافی را وارد نمایید ..." rows="۵"></textarea>
<script src="{{asset("ckeditor/ckeditor.js")}}"></script>
    <script>
        CKEDITOR.replace('desc-input',{
            language: 'fa',
            filebrowserUploadMethod : 'form',
            filebrowserBrowseUrl: '{{route('lesson-desc-img-upload')}}',
            filebrowserUploadUrl: '{{route('lesson-desc-img-upload')}}',
            skin:'moonocolor',
            contentsCss: ["body {font-family: Vazir FD}"],
            height:'۴۵۰',
            toolbarGroups: [{
                "name": "basicstyles",
                "groups": ["basicstyles"]
            },
                {
                    "name": "paragraph",
                    "groups": ["align", "list", "blocks",]
                },
                { "name": "colors", "groups": [ "TextColor", "BGColor" ] },
                {
                    "name": "styles",
                    "groups": ["styles"]
                },
                {
                    "name": "links",
                    "groups": ["links"]
                },
                {
                    "name": "insert",
                    "groups": ["insert"]
                },
                {
                    "name": "document",
                    "groups": ["mode"]
                },
            ],
            removeButtons: 'Subscript,Superscript,Anchor,Flash,SpecialChar,Iframe,PageBreak,NewPage,Save,CreateDiv'
        })
    </script>
//آپلود کردن عکس در ادیتور
    public function uploadDescImg()
    {
        $this->validate(request(),[
            'upload' => 'required|mimes:jpeg,png,jpg,gif'
        ]);

        if (request()->hasFile('upload')) {
            $pic_name = 'desc-pics-' . time() . date("Y-m-d") . '.' . request()->file('upload')->getClientOriginalExtension();
            if (request()->file('upload')->move('upload/lessons/desc-pics', $pic_name)) {
                $url = url("upload/lessons/desc-pics/{$pic_name}");
                return "<script>window.parent.CKEDITOR.tools.callFunction(۱, '".$url."', '')</script>";
            }
        }
    }

@ashkannazari۲۴۸
@masoudproton
@milad
@ali.bayat
@Alimotreb
@hesammousavi
@endworld
@code۲code
@khanzadimahdi
@info.aligraph
@SeyedMH.Mosavi

ثبت پرسش جدید

پاسخ‌ها

4
میلاد بسحاق
میلاد بسحاق
@miladboshagh
بهترین پاسخ

جوابش رو پیدا کردم

فقط کافیه داخل Controller خودمون، قسمتی که قرار هست return بشه رو بصورت زیر تغییر بدیم

$CKEditorFuncNum = $_GET['CKEditorFuncNum'];
return "<script>window.parent.CKEDITOR.tools.callFunction($CKEditorFuncNum, '".$url."')</script>";
mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

جواب شما کاملا مشخصه! شما داری با id یه تگ ادیتور رو ران میکنی. سلکتور واسه id فقط اولین تگ رو انتخاب میکنه. شما باید از کلاس استفاده کنید نام desc-input رو به عنوان کلاس روی تگ ها اعمال کنید. به صورت زیر

<textarea name="desc" class="desc-input">
میلاد بسحاق
میلاد بسحاق
@miladboshagh

@khanzadimahdi
حرف شما درسته

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

شاید پاسخ شما همین‌جا باشد

میلاد بسحاق
میلاد بسحاق
@miladboshagh

@Alimotreb
سلام

شرمنده، میتونید ی نگاه بندازید به کد ها؟

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام