Olabildiğince dinamik yapmaya çalıştım ama yine de $deger değişkeni biraz statik sayılabilir
$array = [
[
'kombin_63' => [
87
],
'kombin_15' => [
23, 24, 25, 26
]
]
];
$combine = array_pop($array[0]);
$deger = current($array[0])[0];
foreach ($combine as $k => &$v)
$v = "$deger,$v";
print_r($combine);
// Array
// (
// [0] => 87,23
// [1] => 87,24
// [2] => 87,25
// [3] => 87,26
// )
Hocam illa player ile oynatmak zorunda mısınız ki. Düz Audio nesnesi ile oynayın. play() metodu promise döndürüyor, ses bitince yönlenir
let audio = new Audio('open.mp3')
audio.play().then(() => {
location.href = './'
})
.catch(err => {
console.log(err)
})
Hocam bir aralar ben de uğraşıyordum selenium ile ama detaylarını unuttuk. Gecko driver indirdiniz mi mesela.
Ayrıca BeautifulSoup ve request modüllerine de bir göz atın, belki yapmak istediğinizi bu modüller ile daha kolay yapabilirsiniz
$("form").on("submit", function (e) {
e.preventDefault();
$.ajax({
method: 'POST',
url: '<?php echo $arow->site_url; ?>/sistem/giris.php',
data: $(this).serialize(),
dataType: "json",
beforeSend: () => {
$('#sonuc').html('<div class="spinner-border" role="status"><span class="visually-hidden">Loading...</span></div>');
},
success : response => {
if (response.status) {
// işlem başarılı ise yapılacak işlemler
} else {
// İşlem başarısız ise yapılacak işlemler
}
},
error:() => {
alert('Bir hata oldu. Lütfen daha sonra tekrar deneyin.');
}
});
});
<?php
$response = [];
if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest')
$response = [
'status' => false,
'text' => 'Hatalı istek'
];
if ($_POST) {
$uye_mail=strip_tags(trim($_POST['uye_mail']));
$uye_sifre=strip_tags(trim(sha1(md5($_POST['uye_sifre']))));
$unutma=isset($_POST['beni_hatirla']);
$kriptosifre=mb_substr($uye_sifre,0,32);
$uyesor=$db->prepare("SELECT * FROM uye WHERE uye_mail=:mail AND uye_sifre=:sifre AND uye_durum=:durum");
$uyesor->execute(array(
':mail' => $uye_mail,
':sifre' => $kriptosifre,
':durum' => 1
));
if ($uyesor->rowCount) {
$_SESSION['uye_mail']=$uye_mail;
$songiris=$db->prepare("UPDATE uye SET uye_sonip=:i, uye_songiris=:t WHERE uye_mail=:um");
$songiris->execute([':i'=>IP(),':t'=>date('Y-m-d H:i:s'), ':um'=>$uye_mail]);
if ($unutma)
setcookie("uye", sha1(md5($uye_mail)), time()+60*60*24*180, "/");
$response = [
'status' => true,
'text' => 'Giriş başarılı, yönlendiriliyorsunuz...'
];
} else {
$response = [
'status' => false,
'text' => 'Giriş bilgileri hatalı veya aktivasyon işlemi tamamlanmadı'
];
}
}
echo json_encode($response);
Geçenlerde bir arkadaş paylaşmıştı burada yine, sonuna time yerine o dosyanın son değiştirilme tarihini eklemek daha mantıklı gibi geldi bana. Bakınız filemtime() (php)
<?php
$markaDurum = $markacek['marka_durum'] == 1;
?>
<button id="<?= $markacek['marka_id'] ?>" class="btn btn-<?= $markaDurum ? 'success' : 'danger' ?> btn-circle btn-sm aktifpasif"><i class="fas fa-<?= $markaDurum ? 'check' : 'times' ?>"></i></button>
$(function() {
$(this).on("click", '.aktifpasif', function() {
let marka_id = $(this).attr('id'),
marka_stat = $(this).hasClass('btn-success') ? 'marka_pasif' : 'marka_aktif';
$.ajax('islem.php', {
type: "POST",
data: {
marka_stat:marka_stat,
marka_id:marka_id},
success: function(e){
console.log(e)
$(this).toggleClass('btn-success btn-danger')
$(this).children('i').toggleClass('fa-check fa-times')
}.bind(this),
error: function(e){
alert(e);
}
});
});
});
Yine de markanın aktif veya pasif olduğunu arka planda kontrol etmenizi öneririm. Veri tabanında aktifse pasif, pasif ise aktif yapın
Javascript tarafında php de yapılan bir işlem sonucu aksiyon alabilmek için php tarafının bir yanıt döndürmesi gerekir. Ajax tarafında kullanıcı ormu gönder dediği anda bir beforeSend fonksiyonu ile 'yükleniyor', 'Lütfen bekleyin..' tarzı uyarı verdirilebilir. Sonrasında success ve/veya error fonksiyonunda (veya done ve/veya catch motodunda) işlemin tamamlandığını yakalanabilir. php tarafından bir yanıt dönmezse success durumunda en azından javascript sonucun ne olduğunu bilemez. Belki gelen herhangi bir yanıt yoksa sayfayı yine de yenilemek isteyebilirsin. Php'den yanıt gelirse de yanıtın da json şeklinde olması işinizi daha kolaylaştırabilir. Örneğin
$response = [
'status' => true,
'text' => 'İşlem başarılı' // Veya javascript tarafından ekrana bastırmak isteyeceğiniz herhangi bir yazı
];
// Başarısız ise de
$response = [
'status' => false,
'text' => 'Hata oluştu'
];
echo json_encode($response);
Ajax için de dataType: 'json' yazarsanız success fonksiyonunda yakalaması daha kolay olur.
$.ajax('ajax.php', {
data: {
veri: ...
},
dataType: 'json'
}).done(response => {
if (response.status){
// sonuç başarılı olmuşsa yapılacak işlemler
// response.text i ekrana yazdır
} else {
// php den gelen yanıt olumsuz ise yapılacak işlemler
}
}).catch(err => {
// ajax işleminde meydana gelebilecek hatalar
})
Muhtemelen zaten bildiğiniz şeyleri anlattım ama kullanıcıya bilgi vermek istiyorsanız php nin bir yanıt döndürmesi gerektiğini anlatmak istedim. Dönmezse de javascript in bunu anlayıp ona göre hareket etmesi gerekir.
Anlayabileceğini pek zannetmiyorum ama en azından bi okursun.
localStorage e o yazdığın gibi bir integer değer kaydedemezsin, otomatik olarak string e dönüştürülür. Ve yine localstorage üzerinde doğrudan işlem yapamazsın. Önce getItem ile değeri alacaksın. Yeni sayı ile toplayıp yeniden kayıt edeceksin. Tabii Toplama işlemi senin istediğin şekilde yapılabilmesi için o aldığın sayıyı parseInt fonksiyonundan geçirmen gerekiyor önce. Anlatmak yerine direkt kod bekliyorsun biliyorum, ama acemi olmayan yazılımcı bu anlattıklarımı koda dökebilir.