Biraz detay vermelisin. Depo derken, ürünler ve ürünlerin stok bilgileri veritabanında mı tutuluyor? Bu bilgiler nereden çekilecek. Backend dili kullandın mı, hangisi?
Kullanıcı depoyu seçip id girdiği anda arka planda veritabanına istek göndermen, stok bilgisini çekmen ve ekrana bastırman gerek, bilmiyorum demişsin ama bunu yapmak içinde bir backend dili js, ajax veya jquery bilmen gerek.
En basit hali ile aşağıdaki gibi bir yapı kurman gerekir. Bir form var ancak stok kontrol butonuna bastığında sayfa yenilenmeden ajax(en basit hali ajax'ın) ile backend scriptıne get methodu ile select'de seçilen ve input'a girilen depo ve ürün id bilgisini iletirsin.
Backend scriptinde, veritabanı sorgusu yaparak veya depo dataların nerede bulunuyorsa gidip alıp bilgiyi dönderir ve ekrana bastırılır.
HTML
<form name="stok-kontrol" action="" method="post">
<select name="" id="depom">
<option value="depo1">depo1</option>
<option value="depo2">depo2</option>
<option value="depo3">depo3</option>
</select>
<input type="text" name="urunId">
<input type="submit" value="stok kontrol" onclick="stokGetir(event)">
</form>
<div id="stok"></div>
Javascript
function stokGetir(e) {
e.preventDefault();
let form = document.forms["stok-kontrol"];
let depo = form.depom.value;
let urunId = form.urunId.value;
let stok = document.getElementById('stok');
// en basit hali ile ajax
let xhr = new XMLHttpRequest();
xhr.onload = () => stok.innerHTML = xhr.responseText;
xhr.open("GET", `depo=${depo}&urunid=${urunId}`);
xhr.send();
}
Tam olarak ne istediğini anlayamadım ama aşağıdaki şekilde 'modal aç' butonuna basınca açılan ve modal içindeki 'X' e basıncada kapanan bir şey istiyorsan eğer en en en basit şekilde bu kod işini görür sanırım, geliştiredebilirsin.
Not: Bende çok uzman değilim. Yanlış anladıysam veya daha farklı bir şey istiyorsan lütfen daha açıklayıcı ve daha güzel bir Türkçe ile yazarmısın :)
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="utf-8">
<title>Test</title>
<style>
#modal {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border: 2px solid gray;
padding: 20px;
}
#modal .cls-btn {
position: absolute;
right: 10px;
top: 10px;
cursor: pointer;
}
</style>
</head>
<body>
<button onclick="modal(true)">Modal Ac</button>
<div id="modal" style="display: none">
<span class="cls-btn" onclick="modal(false)">X</span>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Tenetur, voluptatibus!</p>
</div>
<script>
function modal(type) {
const modal = document.querySelector('#modal');
const display = modal.style.display;
if (type) {
if (display == 'none') modal.style.display = 'block';
} else {
if (display == 'block') modal.style.display = 'none';
}
}
</script>
</body>
</html>
Merhaba, senin css kodlarını çok değiştirmeden aşağıdaki şekilde tekrar güncelledim, bu şekilde istediğin gibi çalışıyor.
Ama farkı, yani menü içeriğinin değiştirğini anlayabilmen için, second-menu içeriğini değiştirmen gerek, hepsi aynı olmasınki farkı anla.
İstediğin bu muydu denermisin?
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
.dropdown-menu .first-menu {
display: flex;
background-color: red;
padding: 0;
}
.dropdown-menu .first-menu li {
list-style: none;
text-align: center;
}
.dropdown-menu .first-menu li a {
display: inline-block;
text-decoration: none;
color: white;
padding: 10px 30px;
}
.dropdown-menu .first-menu li .second-menu {
position: absolute;
left: 0;
width: 100%;
display: none;
background-color: grey;
}
.dropdown-menu .first-menu li .second-menu li {
padding: 5px 30px;
}
.dropdown-menu .first-menu li a:focus+.second-menu {
display: flex;
}
Yapmak istediğimi yapan bir js kütüphanesi var nodejs üzerinden çalıştırdım ve çalışıyor.
Ben php üzerinden test sunucularına ve test hesabına bağlanıp işlem yapabiliyorum. (e arşivin)
Veya başka curl isteklerimde çalışıyor curl'da sıkıntı yok yani.
Postman üzerinden çalışıyor. Postman üzerinden kodu aldım yapıştırdım php'de çalışmıyor aynı hata çıldıracam :)
Postman'de de benim koduma benzer bir kod verdı zaten.
Tahminim php 8.1'in yarattığı bir problem var.
Postman'den aldığım kodu yapıştırıyorum buraya denermisiniz lütfen.
Şifre kısımlarını sallıyorum bilgilerimi gizlemek için, kullanıcı bulunamadı hatalı vs gibi bir response alırsanız zaten çalışıyor demektir.
Bende bu hatayı veriyor. `
error:0A000152:SSL routines::unsafe legacy renegotiation disabled`
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://earsivportal.efatura.gov.tr/earsiv-services/assos-login',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'assoscmd=anologin&rtype=json&userid=12345678&sifre=123456&sifre2=123456&parola=1',
CURLOPT_HTTPHEADER => array(
'Referer: https://earsivportal.efatura.gov.tr/intragiris.html',
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36',
'Content-Type: application/x-www-form-urlencoded'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Hocam sizin yazdığınız kodu olduğu gibi kopyaladım aynı hatayı veriyor.
Galiba benim curl kitaplığında yada php'de bir problem var, zaten son günlerde başka problemlerde yaşattı bana ama çözdüğümü düşünmüştüm, demek ki çözememişim.
verifypeer ve verifyhost da denemiştim olmadı. Ben bir problemleri çözemye çalışayim dönecem size tekrar, lütfen takipte kalırmısınız?
Yardımınız içinde teşekkür ederim.
Bu arada sizin kullandığınız php sürümü nedir 7.4'mü yoksa 8.1'mi kullanıyorsunuz acaba?
Maalesef sonuç değişmedi hocam. Verbose => true kullaninca aşağıdaki çıktıyı alıyorum ayrıca.
* Trying 212.133.164.81:443...
* Connected to earsivportal.efatura.gov.tr (212.133.164.81) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* error:0A000152:SSL routines::unsafe legacy renegotiation disabled
* Closing connection 0