Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

"form onsubmit" de 2 fonksiyon kullanma yardım.....??


Dark_Soul

Öne çıkan mesajlar

Selam,projemin son ayagında takıldım 1 saatir ugrasiyorum yapamadım.Şimdi efenim hazır kodlarla (php,ajax,js) file upload sitesi hazırladım.Kodların php kısmını anladım fakat js tarafında büyük sorunlar var :).Index.php im burda.Form Onsubmit ile şu 2 fonksiyonu birlikte upload.php ye göndermek istiyorum ,olmassa fonksiyonları birleştirsekde olur,bi el atıverın gayri


-)index.php de startProgress(uid),getprogress(uid) fonksiyonları, submite basınca

Dosya upload edilirken progress bar çıkartıyor,işte % şu kadarı upload oldu bilgisi veriyor,sonra dosya xxx dosyası kaydedildi diyerekten işlem bitiyor.

-)function zeigeProcess() bu da

Upload sırasında userin seçtigi dosyanın ismi ekranda gösteriyor,mesela xxxxx.dosyası su an upload ediliyor bekleyin tarzı bişey çıkıyor.

---Fonksiyonlar ayrı ayrı gayet şukela çalışıyor yalnız 2sini aynı anda çalıştıramadım.


Bu iki fonksiyonu birlikte çağırmak yada birleştirmak istiyorum.



function startProgress(uid) {

document.getElementById('upload').style.display = 'none';
document.getElementById('pb_outer').style.display = 'block';
document.getElementById('pb_outer').style.display = 'block';
setTimeout('getProgress("' + uid + '")', 5000);






function zeigeProcess()
{


if (!ok)
return false;
document.getElementById("dateiwahl").style.display = "none";
document.getElementById("progbar").style.display = "block";
return true;




}







ahanda index.php:
Beni mesud edene bi yemek ısmarlarım...




<?php $uid = md5(uniqid(rand())); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>zapidshare</title>

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<meta name="author" content="Saso Nikolov" />
<meta name="keywords" content="Dosya Paylasimi, File Sharing, upload several files" />
<meta name="description" content="Kolay Dosya Paylaşımı, birden fazla dosya yükleme" />
<script type="text/javascript">
if (top != self) top.location = self.location;
</script>
</head>
<style type="text/css">
#pb_outer {
height: 10px;
border: 1px inset #000000;
width: 50%;
margin: 20px auto;
display: none;
text-align: left;

}
#pb_inner {
font-weight: bold;
color: #FFFFFF;
background-color: #003399;
height: 10px;
width: 1px;
text-align: center;
}





</style>

<body>
<center>

<img src="logo.jpg" width="508" height="53" alt="logo" />


<div id="inhaltbox" style="text-align:center;">
<script type="text/javascript">
<!--

var HttpRequestObject = false;


var multi = false;


if(window.XMLHttpRequest) {
HttpRequestObject = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
HttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function switchfiles() {
alert("Lutfen dikkat.., Yuklenecek dosyalarin toplam boyutu 100 MB gecmemelidir.");
var text = "";
for (var i=1;i<11;i++) {
if (i < 10)
text += '0';
text += i+'.';
text += '<input type="file" size="65" onchange="zeigeUploadBtn();"';
text += ' id="dateiname';
if (i > 1)
text += i;
text += '" name="filecontent';
if (i > 1)
text += i;
text += '" /><br />';
}
document.getElementById('files').innerHTML = text;
multi = true;
}
var ok = false;
function zeigeUploadBtn()
{
var dn = document.getElementById("dateiname").value;
dn = dn.replace(/^s+|s+$/g, '');
var Woerter = dn.split("");
var dateiname = Woerter[Woerter.length-1];
if (dn.length < 1)
{
ok = false;
return false;
}
ok = true;
document.getElementById("btnupload").style.visibility = "visible";
document.getElementById("btnupload").style.display = "block";
var elem = document.getElementById("dname");
elem.firstChild.nodeValue = dateiname;
if (multi) {
for (var i=2;i<11;i++) {
dn = document.getElementById("dateiname"+i).value;
dn = dn.replace(/^s+|s+$/g, '');
Woerter = dn.split("");
dateiname = Woerter[Woerter.length-1];
if (dn.length > 1) {
elem.firstChild.nodeValue += ", "+dateiname;
}
}
}
}
function zeigeProcess()
{


if (!ok)
return false;
document.getElementById("dateiwahl").style.display = "none";
document.getElementById("progbar").style.display = "block";
return true;




}


function startProgress(uid) {

document.getElementById('upload').style.display = 'none';
document.getElementById('pb_outer').style.display = 'block';
document.getElementById('pb_outer').style.display = 'block';
setTimeout('getProgress("' + uid + '")', 5000);




}
function getProgress(uid) {
if(HttpRequestObject) {
HttpRequestObject.open('GET', 'getprogress.php?uid=' + uid, true);
HttpRequestObject.onreadystatechange = function() {
if(HttpRequestObject.readyState == 4 && HttpRequestObject.status == 200) {
var progress = HttpRequestObject.responseText;
document.getElementById('pb_inner').style.width = progress + '%';
document.getElementById('pb_inner').innerHTML = progress + '%';
if(progress < 100) {
setTimeout('getProgress("' + uid + '")', 10);
}
else {
document.getElementById('pb_inner').innerHTML = 'Upload Tamamlandı!';
}
}
}
HttpRequestObject.send(null);
}
}




//-->
</script>

<form onSubmit=" startProgress('<?php echo $uid; ?>') ;"
action="upload.php" method="post" enctype="multipart/form-data" name="upload" id="upload" >
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="<?php echo $uid; ?>" />

<div id="progbar" style="display:none;">
<div style="font-size:8pt;">You are uploading:</div>
<p style="margin-top:0px;color:#8E908F;font-size:16pt;" id="dname">.</p>
<iframe src="about:blank" name="pframe" width="100%" height="120" frameborder=0 marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div>

<div id="dateiwahl">
<center>
<table style="font-size:8pt;color:#002760;"><tr><td align=left>
<div id="files">
<a href="javascript:switchfiles()" style="font-size:10pt;color:#002760;">Birden fazla dosya yuklemek istiyorsaniz lutfen tiklayiniz</a>
| Maksimum dosya boyutu 200 Mb olmalidir
<br />
<input type="file" size="65" id="dateiname" name="file" onchange="document.getElementById('infotextfeld').style.display='none';zeigeUploadBtn();" />
</div>
</td></tr></table>
<br />
<div id="infotextfeld" style="display:block;width:400px;text-align:left;">

<ol style="color:#002760;">
<li>Bu sayfayi goruntuleyebilmek icin JAvaScript'e ihtiyac vardir!</li>
<li><a href="http://www.java.com/tr/download/manual.jsp" target="_blank" >JavaScript indirin</a></li>
<li>Max Dosya Boyutu 200Mb</li>

</ol>
</div>
<input type=image id="btnupload" name="u" src="upload.gif" style="display:none;" />
</center>
</div>
</form>
<br /></br />

</div>

</div>
</center>
<div id="pb_outer">
<div id="pb_inner"></div>
<div id="progbar" style="display:none;">
<div style="font-size:8pt;">You are uploading:</div>
<p style="margin-top:0px;color:#8E908F;font-size:16pt;" id="dname">.</p>
<iframe src="about:blank" name="pframe" width="100%" height="120" frameborder=0 marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div>
<p> </p>
<div style="position:fixed;left:0px;bottom:0px;height:15px;width:50%;background-color:#8E908F;"></div>
<div style="position:fixed;left:50%;bottom:0px;height:15px;width:50%;background-color:#002760;"></div>
</body>
</html>


Link to comment
Sosyal ağlarda paylaş

@wildpervert
malesef çözemiyor, undifined "uid" hatası aliyorum.
starttprogress fonksiyonu ile
getprogress.php den random oluşturulan uid ile(index.php nin en üst satırında oluşturuluyor) gönderilen dosyanın bilgilerini aliyorum.Sonra progress bar şeklinde % şukadari gönderildi diye ekrana yazdiriyorum. form action lada upload.php ye gönderiyorum ordada gelen dosyayı şu klasöre gönder diyip ekrana "xxxx" dosyası gönderildi yazdırıyorum.
Ayrıca benim istedigim progress bar ekrandayken altındada,xxx dosyası gönderiliyor,lütfen bekleyin tarzı bişey çıkarmaktı.
function zeigeProcess() bunu yapıyor ama 2si birlikte hem progress bar hem de xxx dosyası gönderiliyor olayını birlikte yapmak istiyorum

Cok kasış oldu galiba 2 funksiyondan birinden vazcaycam galiba :(
Link to comment
Sosyal ağlarda paylaş

ya kodunu tam anlayıp dediğini tam çözemiyorum. ama aklıma gelen şeyler, ya birbirinin içinde yazmak functionları, yada aldığın hata xml objelerle ilgiliyse, ikinci bi object yaratıp ajaxları çakıştırmadan diğer functionı diğer objeyle çağırmak belki olabilir. çok yardımcı olamadım ama çalıştırıp debug edemediğim için biraz karışık gelio burdan. kusura kalma.
Link to comment
Sosyal ağlarda paylaş

zaten bu haliyle çalıştırsan bile progress bar çıkmayacaktır sende büyük ihtimal çünkü php için apc extension yükledim,upload edilen dosyanın ne kadarının gönderildiğini falam kontrol ediyor.

Valla nasıl yapacagimi bilmiyorum,sanırım startprogress fonksiyonu true yada false döndürmedigi için,onSubmitle ikisini birden return (fonk1 && fonk2) şeklinde göndermeye çalıştıgım için hata veriyor
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...