PHP üzerinden $_POST ile varsayılan olarak formdata
ve application/x-www-form-urlencoded
içerik tiplerindeki verileri çekebilirsin.
Eğer application/json
formatında bir içerik tipini çekmek istiyorsan aşağıdaki kodu kullanabailir
$data = json_decode(file_get_contents('php://input'), true);
veya postman üzerinden istek ayarlarını body -> formdata yaparak isteğini gönderebilirsin.
Nginx üzerinden .htaccess
dosyasını çalıştıramazsın, çalıştırmamalısın. Detaylar için buraya bakabilirsin.
Bunun yerine htaccess üzerinden yaptığın işlemleri nginx.conf
üzerinden gerçekleştirmelisin. (Belki bu site yardımcı olabilir.)
Veya, Apache Server kurup .htaccess kullanabilirsin.
Nginx .htaccess
dosyasını desteklemez. Htaccess üzerinden yaptığın işlemleri nginx.conf
üzerinden yapmalısın.
Bunun için bu siteyi kullanabilirsin.
getTime()
methodu üzerinden aradaki farkı alabilirsin.
const date1 = new Date("2023-02-20 00:53:00");
const date2 = new Date("2023-02-18 00:40:00");
let diff = date1.getTime() - date2.getTime();
let minDiff = Math.floor((diff/1000)/60);
console.log(minDiff);
jQuery UI Slider elemanının opsiyonlarını çekmek için, çekmek istediğin opsiyonu direk .slider()
metodunun içerisine yazman yeterli.
jQuery UI - Slider Widget Document
let value = $("#slider").slider("value");
Javascript kodlarını aşağıdaki gibi kullanırsan, sorunun düzelecektir.
let sliderEl = $("#slider")
sliderEl.slider({
orientation: "vertical",
range: "min",
min: 0,
max: 100,
value: 60,
});
$("#btn-inc").on("click", (e) => {
sliderEl.slider({ value: sliderEl.slider("value") + 10 })
})
$("#btn-dec").on("click", (e) => {
sliderEl.slider({ value: sliderEl.slider("value") - 10 })
})
Merhaba,
Soruyu çok anlamamak ile birlikte, shop_contract
ve shop_product
ile sales_contract
ve sales_product
sütunları aynı olan verileri sales_id
lerine göre gruplayarak shop_quantity
verilerinin toplandığı bir geçici tablo oluşturdum.
Sonrasında iste bu tabloya göre sales
tablosundaki verileri güncelledim. Kodu aşağıya bıraktım.
CREATE TEMPORARY TABLE y
SELECT sales.sales_id AS sales_id, SUM(shops.shop_quantity) AS toplam
FROM shops
INNER JOIN sales
ON
shops.shop_contract = sales.sales_contract &&
shops.shop_product = sales.sales_product
GROUP BY sales.sales_id;
UPDATE sales JOIN y ON (sales.sales_id = y.sales_id)
SET sales.sales_quantity = y.toplam;
DROP TABLE y;
Umarım yardımcı olmuştur.
Bu nitelikler için prototurk youtube kanalında sayısız eğitim videoları mevcut.
CSS Display özelliği
CSS Dersleri -90 / display Özelliği
CSS Position özelliği
CSS Dersleri -91 / position Özelliği
Flex için önerecebileceğim video
#frontend - Sohbet Arayüzü Kodluyoruz (Bölüm 1)
Bunlara göz atabilirsin. Ama, css daha çok kullandıkça geliştirebileceğin, özelliklerin nerelerde ve nasıl kullanıldığını projeler ürettikçe kavrayabileceğin bir yapı. Bunun için de yine prototurk youtube kanalında Frontendaily videolarını takip edebilir ve videolardaki yapıları kendin kodlamaya çalışabilirsin.
Merhaba,
Öncelikle hata aldığın kısımdan başlayalım.
acilacak = '"' + acilacak + '"'
Bu kısımda verine çift tırnak eklemene gerek yok. acilacak
değişkeni zaten menu
değerini ifade eden bir string. Bu satırı kodundan kaldırırsan, doğru bir şekilde çalışacaktır.
$(function(){
$(".acilirPencereAc").on("click",function(){
$(this).hide();
acilacak=$(this).attr("data-ac");
// console.log(acilacak);
document.getElementById(acilacak).style="display: block;";
});
});
Ancak, açılır kapanır pencelereler için illaki bir javascript kodu yazmana gerek yok. Bunu css ile de yapabilirsin. Bunun için label
ve input
kullanabilirsin.
Aşağıya küçük bir örneğini bıraktım.
<label class="acilirPencereAc" for="menu">Menü</label>
<input class="acilirPencereInput" type="checkbox" id="menu">
<div class="acilirPencere">
<h1>Menü</h1>
<p>Menü denemesi</p>
</div>
.acilirPencere {
display: none;
}
.acilirPencereInput {
display: none;
}
.acilirPencereInput:checked + .acilirPencere {
display: block;
}
Javascript tarafında hataların var. onclick
eylemini dinlemek için kullandığın yapı doğru değil.
Bu tarafta 2 seçeneğin var. İstersen document
içerisinde yer alan .addEventListener
metodu ile veya istersen jQuery
içerisinde yer alan .on
metodu ile tıklama eylemini dinleyebilirsin.
addEventListener
document.getElementById('submit').addEventListener('click', e => {
e.preventDefault();
let form = $("#form").serialize();
$.ajax({
type: "GET",
data: form
})
})
jQuery on
$("#submit").on("click", e => {
e.preventDefault();
let form = $("#form").serialize();
$.ajax({
type: "GET",
data: form
})
})
Veya aynı metodlar ile form
elemanının submit
eylemini dinleyebilir ve işlemlerini o şekilde gerçekleştirebilirsin.
SMTP sunucunuza bağlantı kuramıyorsunuz. Büyük ihtimal host adresinde bir problem var.
SMTP hostunuzun bağlantısını bu siteyi kullanarak test edebilirsiniz.
Ek olarak, try{}catch{}
yapısını kullanarak PHPMailer işlemlerinizde herhangi bir hata aldığınızda PHP tarafında bir hata almadan direk sitenizde hatayı detaylı olarak görüntüleyebilirsiniz.
Örnek bir kullanıma aşağıda yer verdim.
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mailbody = '<!DOCTYPE html>
Buraya html tema geliyor';
$mail = new PHPMailer(true);
try {
$mail = new PHPMailer(true);
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP();
$mail->Host = $mail_ayar['host'];
$mail->SMTPAuth = true;
$mail->Username = $mail_ayar['email'];
$mail->Password = $mail_ayar['sifre'];
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->CharSet = 'UTF-8';
$mail->SMTPDebug = 0;
$mail->setFrom($mail_ayar['email'], $cek['title']);
$mail->addAddress($cek['siparis_mail'], $cek['title']);
$mail->addAddress($_POST['email'], $_POST['ad'].' '.$_POST['soyad']);
$mail->isHTML(true);
$mail->Subject = 'Yeni Sipariş';
$mail->Body = $mailbody;
$mail->AltBody = '';
$mail->send();
} catch (Exception $e) {
echo "Eposta gönderilirken bir hata meydana geldi: {$mail->ErrorInfo}";
}