سعید محمدی
5 سال پیش توسط سعید محمدی مطرح شد
8 پاسخ

جلوگیری از انتقال css درpagination از یک صفحه به صفحه دیگر

سلام!

من از دیتابیس اطلاعات مربوط به جدول پیغام ها رو توسط laravel و axios میگیرم و بصورت یک حلقه for مربوط vuejs در قالب یه جدول html در قسمت front سایتم بصورت pagination رندر میکنم و نمایش میدم
و اون پیغام هایی که خوانده شده رو با css کمرنگ و اونهایی که نخوانده شده اند رو بصورت bold نشون میدم
وقتی تو page شماره 1 هستم وقتی مثلا سطر شماره 2 رو که نخوانده شده است رو کلیک میکنم از حالت bold در میاد و تو دیتابیس هم اعمال میشه
مشکل اینجاست وقتی که میرم page شماره 2 و اونجا سطر شماره 2 رو که نخوانده شده است رو بصورت کمرنگ نشون میده درحالی که باید bold باشه و میرم تو دیتابیس میبینم که همه چی درسته ولی انگار vue-js کش میکنه یا نمیدونم چیکار میکنه اون خواصی که به سطرهای صفحه اول هست رو میبره برای سطرهای متناظر با اونها تو صفحه های بعدی هم اعمال میکنه ولی اطلاعات داینامیک درست هستند در صفحه


// Laravel Controller Section

public function init(Request $request)
{
    $input = $request->all();
    $user_id = Auth::id();
    $perPage = $input['perPage'];
    $modelResult = Banks::where('user_id',$user_id);
    $copyModelResult = clone $modelResult;
    $items = $modelResult->paginate($perPage);
    $items->setPath('')->render();
    $pagination = (string) $items->appends($input)->links();
    return response()->json([ 'items' => $modelResult->orderBy('position','desc')->get(), 'total' => $copyModelResult->count(), 'pagination' => $pagination ]);
}

public function sort(Request $request)
{
    $input = $request->all();
    .
    .
    .
    return response()->json([ 'color' => 'bg-light-blue', 'message' => __('words.successSort') ]);
}

// Laravel View Section

<div id="cardPaymenter">
<tbody id="tbody_1" class="sortableTbody">
<tr class="sortableTr" v-for="(item, index) in items" :data-id="item.id" :data-name="item.name" :data-pos="item.position">
    <td class="txtc">{{ index + 1 + ( queryString.page === 1 ? 0 : (( queryString.page - 1 ) * queryString.perPage ) + 0 ) }}</td>
    <td class="txtc">{{ item.name }}</td>
</tr>
</tbody>
</div>

// Laravel Internal Javascript Section

<script>
Vue.use(VeeValidate);
var app = new Vue({
  name: 'forms', el: '#mainApp',
  data: function(){ return {
  componentName: 'cardPaymenter',items:[], protocol:'', total: 0, pagination: '',  ApiUrl : '/banks',queryString : { page: 1, perPage : 4 }
  }},
  mounted: function (){var self = this; self.initData(self.queryString,2000);},
  methods: {
    initData: function(queryString,timeDelay){
        var self = this;
        WaitLoading(self.componentName,'show');
        setTimeout(function() {
        axios.get(self.ApiUrl+'/init', {params:queryString} ).then(function (response){
                for (var k in response.data) { if (response.data.hasOwnProperty(k)) { self[k] = response.data[k]; } }
                self.$nextTick(function (){
                    $('[data-toggle="tooltip"]').tooltip();
                    $('[data-toggle=confirmation]').confirmation();

                 });
                WaitLoading(self.componentName,'hide');
            }).catch(function (error){ self.checkError( error.response.status, error.response.data.errors ); });
        },timeDelay);
    },
    changeSort: function(obj){
        var self = this; WaitLoading(self.componentName,'show');
        obj["total"] = self.total;
        obj["page"] = self.queryString.page;
        obj["perPage"] = self.queryString.perPage;
        axios.post(self.ApiUrl+'/sort', obj).then(function (response) {
           self.initData(self.queryString,5000);
           WaitLoading(self.componentName,'hide'); Notification(response.data.color,response.data.message);
        }).catch(function (error) { self.checkError( error.response.status, error.response.data.errors ); });
    },
    goPage: function (href) {var self = this; self.queryString = queryStringToJSON(href); self.initData(self.queryString,500);}
  }
});
$(document).on('click','.pagination a',function(e){e.preventDefault(); app.goPage($(this).attr('href'));});

$(document).ready(function(){
 $(".sortableTbody").sortable({
  placeholder: "stateHighlight",axis:'y',cursor: "move",opacity: 0.9, update : function(event, ui){
    var namearrays = [],idarrays = [];
    $('.sortableTbody tr.sortableTr').each(function(index,element) { idarrays.push($(this).attr('data-id')); namearrays.push($(this).attr('data-name')); });
    app.changeSort({idarrays:idarrays, namearrays:namearrays});
  }
 });
});
</script>

حالا ممنون میشم راهنمایی کنید چیکار کنم ؟


ثبت پرسش جدید
سعید محمدی
@saeiidm 5 سال پیش آپدیت شد
0

پاسخی نبود آیا ؟


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
0

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


سعید محمدی
@saeiidm 5 سال پیش مطرح شد
1

اگه جواب سوال و نمیدید چرا پس این بخش ور راه انداختید الان چند روزه درگیر این مشکلم ولی انگار اینجا اصلا اهمیت نمیدین پشتیبانی و پاسخگویی خیلی مهمتره از اینه که هر روز صدتا فیلم بزارید که توش به خیلی از سوال پاشخ داده نشده باشه


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
0

با سلام مجدد همونطوری که گفتم باید کدتون رو قرار بدید . که مثل اینکه سوالتون رو ویرایش کردید و کدتون رو گذاشتید ولی من ندیدم که ویرایش شد و بدلیل اینکه سوالات زیاده نیاز بود منشن کنید منو حداقل بتونم بفهمم که کد رو قرار دادید ؟!؟
یه سوالی دارم از شما چرا انقدر hard code کردید ؟ چرا jqeury در کنار vue استفاده شده . اگر قرار بودن از جی کوئری استفاده بشه چه نیازی به vue هست اصلا .
کدتون رو خودتون یه هفته دیگه برید سر وقتش نمیتونید بفهمید چی به چیه ! انقدر بد نوشتین !
در مورد بعدی مگه نمیگید اطلاعات از سرور گرفته میشه و بعد هم اگر فیلدی خونده بشه اپدیت میشه خوب کاری نداره شما خیلی راحت میتونید یک کلاس قرار بدید برای سطرتون و از item اون فیلد چک رو بخونید که اگر فعال بود استایل مورد نظر فعال اگر نبود استایل مورد نظر غیر فعال رو انجام بدید.


سعید محمدی
@saeiidm 5 سال پیش مطرح شد
0

@hesammousavi
مهندس لطف کردید از پاسختون مشکل من هارد بودن و بد بودن و ترکیب جیکوئری و ویو جی اس و ... نامفهوم بودن کد نوشته شده بعد از یک مدت نبود!

و مطمئنم منظورمو از مشکلی که ارائه دادم به خوبی متوجه نشدید واسه همین چند روز پیش به آیدی تلگرام تون از کد و اجرااش و مشکلی که دارم فیلم تهیه کردم و براتون فرستادم ولی متاسفانه پاسخی ندادید.


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
0

چک میشه تلگرام و اینکه من دقیقا مشکل شما رو فهمیدم که چیه
ببینید وقتی من نتونم کدتون رو بخونم چه شکلی بفهمیم مشکل کجاست و کمک کنیم که مشکلتون برطرف بشه . بله میشه خوند ولی باید زمان زیادی براش بزارم ببینم کجا به کجاست اصلا اونم چی یه فرم ساده و نمایش اطلاعات داخل اون.
اصلا بزارید براتون شرح بدم .
من یه جدول دارم اطلاعاتی توش نشون داده میشه و صفحه بندیه و قابلیتی رو اضافه کردم که اگر یکی از سطر ها چک بشه استایل تغییر میکنه و مشخص میشه قبلا چک شده اما چون صفحه بندیه وارد صفحه دوم یا سوم میشم دقیقا همون سطر از همه صفحات استایل از قبل خونده میگیرن در صورتی که در دیتابیس اگر چک کنید اصلا خونده نشده !

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


سعید محمدی
@saeiidm 5 سال پیش مطرح شد
0

بله مهندس
@hesammousavi
درسته و همینو تو تلگرام بصورت فیلم فرستادم


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
0

من سرچ کردم چون پیام ها زیاد بودن اصلا پیدا نکردم فیلمی که گفتینو
به هر حال پس الان میدونیم که من مشکل رو میدونم . ولی واقعا نمیتونم کدهاتون رو بخونم تا بفهمم شما در کدوم لاین این شرط رو قرار دادید که اگر یک سطری قبلا مشاهده شده مثلا bold اون برداشته باشه . دقیقا کجا !


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

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