$dec = json_decode($f, true);
// for($val = 0; $val < count($dec); $val++) {
// echo "<tr>";
// echo "<td>".$val["name"]."</td>";
// echo "<td>".$val["number"]."</td>";
// echo "<td>".$val["date"]."</td>";
// echo "<td>".$val["time"]."</td>";
// echo "</tr>";
// }
<?php
function printDec($dec) {
foreach ($dec as $k => $item) {
if ($k === "0" || $k === 0) {
printDec($item);
} else if ($k === "name") {
echo "<tr>";
echo "<td>".$item."</td>";
} else if ($k === "time") {
echo "<td>".$item."</td>";
echo "</tr>\n";
} else {
echo "<td>".$item."</td>";
}
}
}
$f = file_get_contents("data.json");
$dec = json_decode($f, true);
printDec($dec);
$this->someParam = [
'a' => 1,
'b' => 2,
];
//...
//...
//...
$a = $this->someParam['a'] ?? '';
if (TRUE !== FALSE) {
//...
}
//определяем протокол - HTTP/HTTPS
$proto = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off')? 'https': 'http';
//шлем заголовок для "обновления" страницы без пересылки формы.
//все последующие "ручные" обновления страницы будут происходить без отправки формы
header('Location: ' . $proto . '://' . $_SERVER['HTTP_HOST'] . '/' . $_SERVER['REQUEST_URI']);
exit;
foreach ($history_tables as $history_table) {
//если данного менеджера еще нет в массиве, создаем его
$manager_id = $history_table['manager_id'];
if (!isset($data['history_tables'][$manager_id])) {
$data['history_tables'][$manager_id] = array();
}
$data['history_tables'][$manager_id][] = array(
'date' => $history_table['date'],
'text' => $history_table['text'],
'manager' => $history_table['manager'],
'manager_id' => $history_table['manager_id'],
'status' => $history_table['status']
);
}
$('.minus').click(function() { ...
<div data-product="1920"> ...
<!-- лучше так вместо id="1920" -->
$('div[data-product]').each(function() { //собираем все контейнеры товаров и прогоняем по ним цикл
let $productNode = $(this); //фиксируем jQ-объект товара
let productId = $productNode.data('product'); //получаем ID товара
$productNode.find('.plus').on('click', function() {
//здесь мы уже знаем ID товара (productId) и можем манипулировать
//элементами внутри контейнера товара с помощью $productNode.find('селектор')
});
$productNode.find('.minus').on('click', function() {
});
});
<b id="sum">
<input type="hidden" id="price">
<input type="hidden" id="priceakcia">
let price = $productNode.find('input[data-role="price"]').val();
let priceakcia = $productNode.find('input[data-role="priceakcia"]').val();
//так вычисляется отпускная цена: если есть акционная, то она становится отпускной
let sellingPrice = priceakcia? priceakcia: price;
$config = json_decode(file_get_contents(__DIR__ . '/.config'), true); //читаем конфиги
//...
file_put_contents(json_encode($config), __DIR__ . '/.config'); //пишем конфиги
/**
* Get all values
*
* @return array
*/
public function get()
/**
* Get the attribute name
*
* @return string
*/
public function getName()
(function (w, selector) {
w.addEventListener('DOMContentLoaded', () => {
function start() {
w.somename(selector);
}
start();
})
})(window, "container_N");
const elements = document.querySelectorAll('родительский блок *'); //получаем ВСЕХ потомков
Array.prototype.forEach.call(elements, element => { //перебираем полученный список
element.classList.remove( 'доп.класс', 'другой доп.класс', 'еще доп.класс' ); //удаляем ненужные классы
} ); //element.classList.remove поддерживает любое количество аргументов
'options' => [
'class' => \yii\rest\OptionsAction::class,
],
//...начиная со строки с $.each:
$.each( files_path, function( key, val ){
html += "https://" + val.replace(/^\/home\/user\/www\//, "") +'<br>';
} )
//... остальное убираем и далее:
$('.ajax-respond').html( html );
/.*\/home\/user\/www\//