//...начиная со строки с $.each:
$.each( files_path, function( key, val ){
html += "https://" + val.replace(/^\/home\/user\/www\//, "") +'<br>';
} )
//... остальное убираем и далее:
$('.ajax-respond').html( html );
/.*\/home\/user\/www\//
const findByKey = (object, key) => {
if (object instanceof Array) {
for (let i = 0; i < object.length; i++) {
let result = findByKey(object[i], key);
if (result !== null) {
return result;
}
}
return null;
}
for (let p in object) {
if (p === key) {
return object[p]
} else if (typeof object[p] === 'object') {
let result = findByKey(object[p], key);
if (result !== null) {
return result;
}
}
}
return null;
}
findByKey(someObject, someKey)
$('.close').on('click', function (e) {
e.stopPropagation(); // вот так
$('.section').removeClass('opened');
});
e.preventDefault();
блокирует переход.$(this).next('.top-menu li ul').slideToggle(200, function(){
document.location.href = e.currentTarget.href
})
if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
//вот тебе данные в виде JSON
} else {
//а вот тебе те же данные, но в виде HTML
}
//один из компонентов сообщает, что надо что-то выполнить
methods: {
iChangeSomething(value) {
this.$root.$emit("something-changed", value)
}
}
//другой это выполняет силами своего метода
methods: {
somethingChanged(value) {
console.log({value})
}
},
created() {
this.$root.$on("something-changed", this.somethingChanged )
},
destroy() {
this.$root.$off("something-changed", this.somethingChanged )
}
//определяем
//@/plugins/user.js
let doSomething = () => null
export default function install(Vue) => {
const MyComponent = {
name: "MyComponent ",
methods: {
doSomething() {
console.log("I'm doing something!")
}
},
created() {
doSomething = this.doSomething
},
render: function (createElement) {
//...
}
}
Vue.component('MyComponent', MyComponent)
Vue.prototype.$doSomething = doSomething
}
//подключаем
//main.js
import {VuePlugin as User} from "@/plugins/user"
Vue.use(User)
new Vue({ ...
//используем
methods: {
doSomething() {
this.$doSomething()
}
}
<!-- или так -->
<button @click="$doSomething">BUTTON</button>
export default {
name: "form-element",
render(h) {
let data = {
//.....................................
};
//.....................................
let slots = []
for(let slot in this.$slots) {
slots.push(h('template', {slot}, this.$slots[slot]))
}
return h(component, data, slots);
}
}
await fetch('upload', ...)
:prev-button="prevButton"
computed: {
prevButton() {
return "<div class='button'>назад</div>"
}
}
"config": {
"secure-http": false
}
//по феншую
function checkDateIsBetween(string $data, string $timeFrom, string $timeTo): bool
{
$dateObject = new DateTime($date);
$day = $dataObject->format('Y-m-d');
$from = (new DateTime($day . ' ' . $timeFrom))->getTimestamp();
$to = (new DateTime($day . ' ' . $timeTo))->getTimestamp();
$ts = $dateObject->getTimestamp();
return ($ts < $to) && ($ts > $from);
}
//по быстроляну
function checkDateIsBetween2(string $date, string $timeFrom, string $timeTo): bool
{
$ts = strtotime($date);
list($day, $time) = explode($date);
return ($ts > strtotime($day . ' ' . $timeFrom)) && ($ts < strtotime($day . ' ' . $timeTo));
}
$date = '2019-07-01 16:22:01';
$timeFrom = '17:40:00';
$timeTo = '23:59:00';
$dateIsBetween = checkDateIsBetween($date, $timeFrom, $timeTo);
$dateIsBetween2 = checkDateIsBetween2($date, $timeFrom, $timeTo);