Mesela bütün sayfalarda kullanılan kod var mı. Header menu gibi. Onlara elleme. Mesela sadece belli sayfada çalışan kod mu var onu al ve sadece o sayfada çağır. Bunları yaparken script src lerini body nin en altına al tamamladığına ve sorun yaşamadığında bu sefer scr leri head taglarına al ve defer async leri araştır.
https://www.youtube.com/watch?v=kkuZTAMyAFI
Buraya bakarsan anlayacaksın.
<script>
'use strict';
function ysAjax(url, method, data, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
if (typeof callback == 'function') {
callback(this);
}
}
}
xhr.open(method, url);
if (method == 'POST' && !(data instanceof FormData)) {
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
}
xhr.send(data);
}
'use strict';
ysAjax('metin.txt', 'GET', null, yazdir);
function yazdir (sonuc) {
console.log(sonuc.responseText);
}
Fonksiyona bu şekilde parametre yollayabiliyorum sonucuda consolda alıyorum.
Burada fonksiyon yerine objeye parametre göndermek istiyorum, fonksiyona değil yani.
</script>
<script>
const alertBox = { //responseText değerini alamadım bu objeye
init(){
this.hideTimeout = null;
this.el = document.createElement('div');
this.el.className = 'alert_box';
document.body.appendChild(this.el);
},
show(message,state){
clearTimeout(this.hideTimeout);
this.el.textContent = message;
this.el.className = 'alert_box alert_box_visible';
/*
alert_box_visible
css de opacity 0, visibility visible oluyor
*/
if(state){
this.el.classList.add(state);
}
this.hideTimeout = setTimeout(() => {
//this.el.classList.remove('alert_box_visible');
}, 3000);
}
};
</script>
Amacım dönen değeri notification alert olarak göstermek.
Çok sağol ama ben butonun içine onclik fonkisiyonu ile parametreyi aldım. Böylece safadaki bütün butonları döngü içine almadan hallettim.
Oldu ancak bu işin mantığı böylemi olur bilemedim gittigidiyoru inceledim oda link içinde buton kullanmış ama javascript kısmında nasıl yapmış bilemedim.
Ben şöyle düşündüm kullanıcı sorgu içinde geçen kelimeden isim belirlerse SELECT vb. gibi bunu
sorgu içinde kaydederken yorum içinde kaydetmek /SELECT/ oluyorsa denemedim. Yada başka birşey.
Ek önlem gibi yani.
<?php
if(isset($_SERVER["HTTP_REFERER"])){
$backpace = $_SERVER["HTTP_REFERER"];
}else{
$backpace = "";
}
Forma gizli input ekledim
<input type="hidden" value="$backpace" name="backpage">
php sorguda ise login başarılı ise
$login_success = false;
if(!empty($_POST["backpace"])){
$login_success = 1; //site içi
}else{
$login_success = 2; //site dışı
}
?>
ajax bölümünde :
<script>
--------------------------------
if(objectR.login){
if(objectR.login == 1){
window.history.back();
}else if(objectR.login == 2){
window.location = 'http://anasayfa/';
}
}
</script>
Maalesef site dışından login sayfasına gelip giriş yapıldığında ana sayfaya yönlendiriyor ama bu sefer de site içinde gezinirken giriş yapıldığın da da yine ana sayfaya yönleniyor. Tayfun Hocam.
Çünkü bütün hataları aralarında virgül olacak şekilde almak için.
$query->errorInfo() dizi çünkü.
Sorunun ne olduğunu buldum.
<?php
//Bunun yerine :
$upquerystringquery = "Mavi,Turuncu,NULL,NULL,NULL,Yeşil,Kahverengi,NULL,Sarı,NULL,Orange";
//Bu :
$upquerystringquery = 'Mavi','Turuncu','Siyah','Yeşil','Beyaz','Yeşil','Kahverengi','Beyaz','Sarı','Sarı','Orange'
//olması gerekiyordu. String olduğu için değerleri tırnak içine alınca düzeldi.
?>