Tayfun Hocam ben kurmuş olduğum web sitesi ile herkes kendi veri tabanı bağlantı bilgilerini girerek bağlanabilsin ve sorgulama yapabilsin istiyordum.
Node.js ile yapılabilir mi bilmiyorum. Araştırmam lazım.
Açıkçası kodları bulmuştum fakat IE ile denemediğim problem yaşıyormuşum :).
Bir de Tayun Hocam markdown
ile bağlantı eklemeye bir ayar çeksen de direk tıklama yaptığımız zaman otomatik yeni sekmede açılsa güzel olmaz mı?
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var conn = new ActiveXObject("ADODB.Connection")//creating the connection object
var conn_str = ""
var db_Host = ""
var db_User = ""
var db_Password = ""
var db_Provider = ""
var db_Default = ""
function Show_Data()
{
db_Host = "MakineSqlServer";//your computer name
db_User = "Kullanıcı";//system admin user
db_Password = "Şifre";
db_Provider = "SQLOLEDB";
db_Default = "veritabanı";//database name
conn_str = "Provider="+db_Provider+";Data Source="+db_Host+"; User Id="+db_User+"; password="+db_Password+"; Initial Catalog="+db_Default;
show_data_from_database();
}
function show_data_from_database()
{
try
{
conn.Open(conn_str)//open the connection
//alert(conn)
var reader = new ActiveXObject("ADODB.Recordset");//creating an object of adodb to read the data as rows
var strQuery = "SELECT * FROM FirmalarListesi";//query string
reader.Open(strQuery, conn);//fetch the data
reader.MoveFirst();//move to the first row
while (!reader.eof) //reaad until the last row of data
{
document.write(reader.fields(0) + " ");//print to the screen
document.write(reader.fields(1) + " ");
document.write(reader.fields(2) + "<br/>");
//alert(rs.fields(0));
reader.movenext();//move to the next row
}
}
catch(e)
{
alert("Error creating Connection")
}
}
</script>
</head>
<body onload="Show_Data()">
</body>
</html>
function cariler(){
$("#main_container").load("cariler.php", function() {
//sayfa yüklendiğinde yapılmasını istediğin işlemler için
//mesela tabloların için datatables kullanıyorsan burada kodu belirtirsen sıkıntı yaşamazsın.
//eğer script kodları çağıracağın sayfanın içinde ise ilk çağrında sıkıntı olmuyor fakat sonraki çağırmalarda çalışmıyor.
//sebebini pek anladığım bir konu değil uzman olmadığım için bu konuda doğru bilgi veremem.
})
}
Belirttiğin kodlar eksik nasıl yaptığını bilmiyorum fakat aşağıdaki kodları kullanabilirsin...
<?php
$cevap['mesaj'] = 'test';
echo json_encode($cevap);
?>
$(document).ready(function(){
$.ajax({
url:"jquery.php",
type:"POST",
success:function(cevap){
data = JSON.parse(cevap);
document.write(data.mesaj);
}
})
})
Ben aldım her hangi bir şikayetim yok.
Ip4 yetersiz kaldığı için yeni bir sisteme geçtiler.
Nasıl modem dış ip ile cihazının aldığı ip adresi farklı ise bu da benzer bir
yapı kullanılıyor. Bir tanımı vardı şimdi hatırlamıyorum.
Sabit Ip adresine başvurman gerekebilir
İşin uzmanı değilim ama sorunu çözebildim.
DECLARE @TABLO TABLE (FATREF INT,CARIREF INT,
HARIC1 FLOAT,KDVT1 FLOAT,
HARIC8 FLOAT,KDVT8 FLOAT,
HARIC18 FLOAT,KDVT18 FLOAT
);
INSERT INTO @TABLO
SELECT
LG_XXX_XX_STLINE.INVOICEREF,
LG_XXX_XX_STLINE.CLIENTREF,
CASE
WHEN LG_XXX_XX_STLINE.VAT = '1' THEN SUM(LG_XXX_XX_STLINE.VATMATRAH)
END,
CASE
WHEN LG_XXX_XX_STLINE.VAT = '1' THEN SUM(LG_XXX_XX_STLINE.VATAMNT)
END,
CASE
WHEN LG_XXX_XX_STLINE.VAT = '8' THEN SUM(LG_XXX_XX_STLINE.VATMATRAH)
END,
CASE
WHEN LG_XXX_XX_STLINE.VAT = '8' THEN SUM(LG_XXX_XX_STLINE.VATAMNT)
END,
CASE
WHEN LG_XXX_XX_STLINE.VAT = '18' THEN SUM(LG_XXX_XX_STLINE.VATMATRAH)
END,
CASE
WHEN LG_XXX_XX_STLINE.VAT = '18' THEN SUM(LG_XXX_XX_STLINE.VATAMNT)
END
FROM LG_XXX_XX_STLINE
GROUP BY LG_XXX_XX_STLINE.INVOICEREF, LG_XXX_XX_STLINE.CLIENTREF, LG_XXX_XX_STLINE.VAT
SELECT
FATREF, CARIREF, LG_XXX_CLCARD.DEFINITION_, LG_XXX_CLCARD.TAXNR, LG_XXX_CLCARD.TCKNO,
LG_XXX_XX_INVOICE.FICHENO,LG_XXX_XX_INVOICE.DATE_,
SUM(HARIC1) AS'HARIC1',
SUM(KDVT1) AS'KDVT1',
SUM(HARIC8) AS'HARIC8',
SUM(KDVT8) AS'KDVT8',
SUM(HARIC18) AS'HARIC18',
SUM(KDVT18) AS'KDVT18',
LG_XXX_XX_INVOICE.NETTOTAL
FROM
((@TABLO
INNER JOIN LG_XXX_CLCARD ON CARIREF = LG_XXX_CLCARD.LOGICALREF)
INNER JOIN LG_XXX_XX_INVOICE ON FATREF = LG_XXX_XX_INVOICE.LOGICALREF)
GROUP BY FATREF, CARIREF, LG_XXX_CLCARD.DEFINITION_,LG_XXX_CLCARD.TAXNR,LG_XXX_CLCARD.TCKNO,LG_XXX_XX_INVOICE.FICHENO,LG_XXX_XX_INVOICE.DATE_,
LG_XXX_XX_INVOICE.NETTOTAL;;
Not: Ne hikmetse burada paylaştıktan bir süre sonra sorunu çözüyorum :)
javascript dosyasının düzenlenmesi gerekiyor kaynak kendi makinen değil de uzak makinede olduğu için düzenleyemezsin o yüzden kaynak makineye çekmen gerekiyor.
Aşağıdaki alanı bul. return this.hour + ':'
kodu return this.hour.padStart(2, '0') + ':'
olarak değiştirirsen sonuca ulaşabilirsin.
Sadece ihtiyacıma göre araştırma yapıp bulan birisi olduğum için daha fazla faydalı olamıyorum kusura kalma...
...
getTime: function () {
if (this.hour === '') {
return '';
}
//orijinal return this.hour + ':' + (this.minute.toString().length === 1 ? '0' + this.minute : this.minute) + (this.showSeconds ? ':' + (this.second.toString().length === 1 ? '0' + this.second : this.second) : '') + (this.showMeridian ? ' ' + this.meridian : '');
return this.hour.toString().padStart(2, '0') + ':' + (this.minute.toString().length === 1 ? '0' + this.minute : this.minute) + (this.showSeconds ? ':' + (this.second.toString().length === 1 ? '0' + this.second : this.second) : '') + (this.showMeridian ? ' ' + this.meridian : '');
},
...
Bir de jsfiddle üzerindeki kaynak bağlantılarınI sırasına göre eklemeyi unutma.
...
<head>
<link rel="stylesheet" href="https://www.okler.net/previews/porto-admin/3.0.0/vendor/bootstrap/css/bootstrap.css">
<link rel="stylesheet" href="https://www.okler.net/previews/porto-admin/3.0.0/vendor/bootstrap-timepicker/css/bootstrap-timepicker.css">
<script src="https://www.okler.net/previews/porto-admin/3.0.0/vendor/jquery/jquery.js"></script>
<script src="https://www.okler.net/previews/porto-admin/3.0.0/vendor/bootstrap/js/bootstrap.js"></script>
<script src="bootstrap-timepicker.js"></script>
<script src="https://www.okler.net/previews/porto-admin/3.0.0/js/theme.js"></script>
<script src="https://www.okler.net/previews/porto-admin/3.0.0/js/theme.init.js"></script>
</head>
...
İlginiz için teşekkür ederim. Fakat işime yarasa bile ben dizi içine entegre edebilir miyim bilmiyorum? Denedim beceremedim :)
Muhasebe bürosunda çalışıyorum işimle alakalı muhasebe programının yetersiz kaldığı yerlerde kendim web uygulaması ile bu yaşadığım sorunları çözmek için kullanıyorum.
Ben araştırmalarım sonucu sorunu çözebildim.
Sorguda tarihleri CONVERT(varchar, tarih, 23) as tarih
şeklinde ayarlayınca istediğim sonuca ulaşabildim.
...
$yevmiyeSorgu = "SELECT CONVERT(varchar, Fistar, 23) as Fistar,
CONVERT(varchar, Evraktarihi, 23) as Evraktarihi
FROM [yevmiye] where month(fistar) = '$Ayindex'";
$result = sqlsrv_query($db, $yevmiyeSorgu);
$dizi = array();
while ($row1 = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
$dizi[] = $row1;
}
echo json_encode($dizi);
...
Json Sonuç:
[
{"Fistar":"2020-09-30","Evraktarihi":"2020-09-03"},
{"Fistar":"2020-09-30","Evraktarihi":"2020-09-03"},
{"Fistar":"2020-09-30","Evraktarihi":"2020-09-03"}
]
"readyonly" özniteliğini kullanabilirsin. Giriş alanını salt okunur yapar.
Hem görünür hem de kullanıcının veri girişi yapmasını önler.
Hesaplama işlemleri için kullanıyorum bir de rengini background-color: #e9ecef;
yapılırsa tam "disabled" gibi görünmesini sağlamış oluruz.
Bu bağlantıya tıklayarak W3 School sayfasında çalışma şeklini inceleyebilirsin
<form id="formCountry">
<label for="country">Ülke:</label>
<input type="text" id="country" name="country" value="Türkiye" style="background-color: #e9ecef;" readonly><br><br>
<input type="submit" value="Gönder">
</form>
Teşekkür ederim Tayfun Bey ben sorunu farklı şekilde çözdüm. Sorun keydown ve keyup olaylarından kaynaklanıyormuş.
Enter tuşu ile atlatırken eylem=keyup fakat hesaplatma yaparken eylem=keydown olması gerekiyor.
Select üzerinde atlamam için keydown kullanmam gerekiyormuş.
Ben ise input'a değer girildiğinde hesaplanması için keyup kullanıyordum.
İkisini ayırdım sorun çözüldü.