RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-301106

Alexander's questions

Martin Hope
Alexander
Asked: 2020-10-06 01:40:13 +0000 UTC

route.query.page 更改时如何更改数据?

  • 1

例如,如果你转到分页的第 3 页,然后在浏览器中点击返回,route.query.page 发生了变化,但内容没有改变,如果你只是点击分页,那么一切都很好, url和内容发生变化,点击浏览器后退按钮时如何跟踪url和更改内容?像这样的 url:http://localhost:3000/category/610?page=3 例如,当:-> ?page=3 等于 pageNum 时会发生什么变化

<div class="page"
                 v-if="filteredProducts.length > 20"
                 v-for="page in pages"
                 :key="page"
                 :class="{'page__selected' : page === pageNum}"
                 @click="pageClick(page)">
                {{ page }}
            </div>
data() {
    return {
      view: true,
      productsPerPage: 20,
      pageNum: 1,
}}
computed:{
paginatedProducts() {
      let from = (this.pageNum - 1) * this.productsPerPage,
        to = from + this.productsPerPage;
      return this.filteredProducts.slice(from, to);
    },
}
methods:{
pageClick(page) {
      this.$router.push({
        query: {
          ...this.$route.query,
          page: page,
        },
      })
      this.pageNum = page;
    },}
vue.js
  • 1 个回答
  • 10 Views
Martin Hope
Alexander
Asked: 2020-06-23 02:53:30 +0000 UTC

带有来自 json 的类别和子类别的菜单

  • 0

我需要帮助,我正在制作一个包含类别(主要类别有 parent_id:0)和子类别的菜单,我正在显示主要类别,但我不明白如何显示其 parent_id 类似于主要类别的子类别,我通过 vuex 从 api 获取数据

例如主类别:id:323,parent_id:0,

子类别:id:13,parent_id:323,

   <ul class="menu-list">
      <li class="menu-item" v-for="category in CATEGORIES" v-if="category.parent_id === 0">
        <button class="menu-button">{{ category.title}}</button>

        <ul class="menu-sub-list">
          <li class="menu-item" >
            <button class="menu-button">{{ }}</button>
          </li>
        </ul>

      </li>
    </ul>

Vuex

import axios, * as others from 'axios'
export const state = () => ({
  categories: []
});
export const mutations = {
  SET_CATEGORIES_TO_STATE:(state, categories) => {
    state.categories = categories
  }
};
export const actions = {
  GET_CATEGORIES_FROM_API({commit}) {
    return axios('https://exmple.com/',{
      method: "GET"
    })
      .then((categories) => {
        commit('SET_CATEGORIES_TO_STATE', categories.data);
        return categories;
      })
      .catch((error) => {
        console.log("error")
        return error;
      })
  }
};
export const getters = {
  CATEGORIES(state){
    return state.categories;
  }
};
vue.js
  • 1 个回答
  • 10 Views
Martin Hope
Alexander
Asked: 2020-03-27 01:01:09 +0000 UTC

modal + ajax,提交按钮不起作用

  • 1

这个表单中有一个模态窗口(网站上有很多表单)

`$('.btn-evacuator').on('click', function(e){
        e.preventDefault();
        $('.form-container').removeClass('hidden').html('<div class="form-block">\n' +
            '        <h3>Вызвать </h3>\n' +
            '        <form class="ajax-form>\n' +
            '            <input type="hidden" name="whatform" value="Форма - Вызов" />\n' +
            '            <input id="name" name="name" type="text" placeholder="Ваше имя" size="25" required="">\n' +
            '            <input id="phone" name="phone" type="tel" placeholder="Ваш телефон" required="">\n' +
            '            <button id="send" class="button cta_b" type="button">Отправить</button>\n' +
            '        </form>\n' +
            '        <button type="button" class="btn-close">×</button>\n' +
            '    </div>');
        $('body').toggleClass('lock');
    });`

форма отправлялась просто в php и потом на страницу благодарности, теперь хочу отправлять через ajax и что-то никакой реакции на кнопку



$("#send").on('click', function () {
     $.ajax({
        url: "/mail.php",
        type: 'post',
        cache: false,
        data: $(this).serialize(),
        success: function (response) {
            alert("ok")
        }
     });
     });
javascript
  • 1 个回答
  • 10 Views
Martin Hope
Alexander
Asked: 2020-07-14 05:28:46 +0000 UTC

Vue.js 复选框问题

  • 0

有一个作为单独组件的订单,我在页面上使用了 2 次或更多,它有复选框。如果我点击label它并且在组件的另一个实例中,它也会被点击,如果我点击输入本身,那么一切都很好。我想制作一个自定义复选框,其中input隐藏它,您只需单击label,但它不适用于它。如何解决问题?

<template>
<form action="" @submit.prevent="formSubmit" class="order-form">
    <h2>Начать работу</h2>
    <div class="order-content">
        <div class="order-left">
            <div class="order__row">
                <label class="down" :for="'order_name_' + makeHash">Имя</label>
                <input :id="'order_name_' + makeHash" type="text" :name="'order_name_' + makeHash" v-model="orderName" required="required" maxlength="50">
            </div>
            <div class="order__row">
                <label class="down" :for="'order_tel_' + makeHash">Номер телефона</label>
                <input :id="'order_tel_' + makeHash" type="tel" :name="'order_tel_' + makeHash" v-model="orderTel" required="required" maxlength="15">
            </div>
            <div class="order__row">
                <label class="down" :for="'order_email_' + makeHash">Email</label>
                <input :id="'order_email_' + makeHash" type="email" :name="'order_email_' + makeHash" v-model="orderEmail" maxlength="40">
            </div>
        </div>
        <div class="order-center">

        </div>
        <div class="order-right">
            <div class="order-right-pick">
                Выберите услугу:
            </div>
            <ul class="">
                <li v-for="(feature, index) in features">
                    <input type="checkbox"
                           :value="feature"
                           :id="'cb-feature-'+index"
                           v-model="selection.features">
                    <label :for="'cb-feature-'+index">{{feature}}</label>
                </li>
            </ul>
        </div>
    </div>
    <div class="order__footer">
        <div class="border-btn-box pointer-large">
            <div class="border-btn-inner">
                <button :submit="true" class="border-btn" data-text="Отправить">Отправить</button>
            </div>
        </div>
    </div>
</form>

代码

import DOMPurify from 'dompurify';
import MaskedInput from 'vue-masked-input';
import swal from 'sweetalert';
import axios from 'axios';

export default {
    name: 'order',
    components: {
        MaskedInput
    },
    data: function(){
        return {
            orderName: '',
            orderEmail: '',
            orderTel: '',
            errs: [],
            token: '',
            chatId: '',

            features: ["Reactivity", "Encapsulation", "Data Binding"],
            selection: {
                features: []
            },
        };
    },
    methods: {
        formSubmit: function(){
            let name = this.orderNameCleaned;
            let tel = this.orderTelCleaned;
            let email = this.orderEmailCleaned;

            if(name.length > 0){
                this.removeError('name');
            } else {
                this.addError('name');
            }


            if(tel.length > 0){
                this.removeError('tel');
            } else {
                this.addError('tel');
            }

            if(this.checkErrors()){
                let msg =   '<b>Новая заявка от ' + name + '!</b>\n';
                msg +=  'Номер телефона: ' + tel + '.\n';
                msg +=  'Email: ' + email + '.\n';
                this.sendMsg(msg);

            } else {
                let msg = "";
                Array.prototype.forEach.call(this.errs, function(err){
                    if(err == 'name'){
                        msg += 'Поле имя не должно быть пустое. ';
                    }
                    if(err == 'tel'){
                        msg += 'Поле телефон не должно быть пустое. ';
                    }
                });
                this.showErrorAlert(msg);
            }
        },
        sanitize: function(s){
            return DOMPurify.sanitize(s).trim().replace(/\s+/g,' ').replace(/_/g, '');
        },
        checkError: function(err){
            return this.errs.indexOf(err);
        },
        addError: function(err){
            if(this.checkError(err) == -1){
                this.errs.push(err);
            }
        },
        removeError: function(err){
            if(this.checkError(err) != -1){
                this.errs.splice(this.checkError(err), 1);
            }
        },
        checkErrors: function(){
            if(this.errs.length == 0){
                return true;
            } else {
                return false;
            }
        },
        showErrorAlert: function(msg){
            swal("Ошибка", msg, "error");
            console.log(msg);
        },
        showSuccessAlert: function(){
            swal("Успешно!", "Ваша заявка принята и будет рассмотрена в ближайшее время.", "success");
            this.orderName = '';
            this.orderTel = '';
            this.orderEmail = '';
        },
        sendMsg: function(msg){
            let url = 'https://api.telegram.org/bot' + this.token + '/sendMessage?chat_id=' + this.chatId + '&text=' + encodeURI(msg) + '&parse_mode=html';
            let $this = this;

            axios.get(url).then((response) => {
                let ok = response.data.ok;
                if(ok){
                    $this.showSuccessAlert();
                } else {
                    $this.showErrorAlert('Случилась какая-то ошибка. Подождите немного и повторите еще раз.');
                }
            }).catch((error) => {
                console.log(error);
                $this.showErrorAlert('Случилась какая-то ошибка. Подождите немного и повторите еще раз.');
            });
        }
    },
    computed: {
        makeHash: function(){
            let hash = "";
            let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
            for(let i = 0; i < 8; i++)
                hash += possible.charAt(Math.floor(Math.random() * possible.length));

            return hash;
        },
        orderNameCleaned: function(){
            return this.sanitize(this.orderName);
        },
        orderTelCleaned: function(){
            return this.sanitize(this.orderTel);
        },
        orderEmailCleaned: function(){
            return this.sanitize(this.orderEmail);
        },
    }
};
vue.js
  • 1 个回答
  • 10 Views
Martin Hope
Alexander
Asked: 2020-06-21 03:50:15 +0000 UTC

加载另一个页面时更改导航颜色

  • 0

导航有绝对位置,有些页面bg是暗的,导航应该是白色的,反之亦然,无法重新排序类,如何实现,我将不胜感激index.php:

<?php 
include "includes/nav.php";
 ?>
<?php 
    if (isset ($_GET['page'])) {

        $page = $_GET["page"];
        $filename = "includes/" . $page . '.php';

        if (file_exists($filename)) {
            include $filename;
        }else{
            include 'includes/home.php';
        }

    }else{
        include 'includes/home.php';
    }
 ?>
<?php 
include "includes/footer.php";
 ?>
php
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5