PDA

View Full Version : آموزش: اسکریپت افزودن فیلد ارسال فایل به فرم



idocsidocs
سه شنبه 30 آذر 1389, 16:01 عصر
من یه فرم برای آپلود فایل طراحی کردم، کاربر می تونه 5 فایل با هم آپلود کنه.

من به یه اسکریپت احتیاج دارم که اگه کاربر می خواست فایلهای بیشتری آپلود کنه با کلیک کردن روی یه لینک بتونه به تعداد دلخواه به فرم خودش کادر اضافه کنه.

همچنین کاربر باید بتونه کادرهایی که اضافه کرده رو حذف کنه.

hossin.esm
سه شنبه 30 آذر 1389, 19:17 عصر
<?php $h = "hidden"; ?>
<div id="d1">
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
</div>
<a href="#" onclick="create();">add</a>
<br />
<a href="#" onclick="remove();">del</a>
<SCRIPT language="javascript">


function create()
{
var obj=document.getElementById('d1');
var s="<br /><input name='file[]' type='file' />";
document.getElementById('d1').innerHTML+=s;
//
// var br=document.createElement('br');
// obj.appendChild(br);
//
// var newO=document.createElement('input');
// newO.setAttribute('name','a');
// newO.setAttribute('type','file');
// obj.appendChild(newO);



}
function remove()
{
var obj=document.getElementById('d1');
var l=obj.getElementsByTagName('br').length-1;
var br = document.getElementsByTagName('br')[l];
obj.removeChild(br);

l=document.getElementsByName('file[]').length-1;

var oldobj = document.getElementsByName('file[]')[l];
obj.removeChild(oldobj);

}
</SCRIPT>

idocsidocs
سه شنبه 30 آذر 1389, 22:05 عصر
<?php $h = "hidden"; ?>
<div id="d1">
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
</div>
<a href="#" onclick="create();">add</a>
<br />
<a href="#" onclick="remove();">del</a>
<SCRIPT language="javascript">


function create()
{
var obj=document.getElementById('d1');
var s="<br /><input name='file[]' type='file' />";
document.getElementById('d1').innerHTML+=s;
//
// var br=document.createElement('br');
// obj.appendChild(br);
//
// var newO=document.createElement('input');
// newO.setAttribute('name','a');
// newO.setAttribute('type','file');
// obj.appendChild(newO);



}
function remove()
{
var obj=document.getElementById('d1');
var l=obj.getElementsByTagName('br').length-1;
var br = document.getElementsByTagName('br')[l];
obj.removeChild(br);

l=document.getElementsByName('file[]').length-1;

var oldobj = document.getElementsByName('file[]')[l];
obj.removeChild(oldobj);

}
</SCRIPT>

این کد دو مشکل داره

مشکل اول: وقتی روی لینکها کلیک می کنم، بالای صفحه نمایش داده می شه و باید برای دیدن فرم از میله های اسکرول استفاده کنم.

مشکل دوم هم اینه که لینک حذف کادرها عمل نمی کنه.

می شه این دو مشکل رو برطرف کنید؟

hossin.esm
سه شنبه 30 آذر 1389, 23:17 عصر
مشکل اول رفع شد. (علتش احتمالا داشتن تگی با id=# ) به هر حال حل شد.
در رابطه با مشکل دوم من این کد را در مرورگر های مختلف تستش کردم مشکلی ندارد .
منظورت از کادر چیست



<?php $h = "hidden"; ?>
<div id="d1">
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
</div>
<a href="#" onclick="create();return false;">add</a>
<br />
<a href="#" onclick="remove();return false;">del</a>
<SCRIPT language="javascript">


function create()
{
try{
var obj=document.getElementById('d1');
var s="<br /><input name='file[]' type='file' />";
document.getElementById('d1').innerHTML+=s;
//
// var br=document.createElement('br');
// obj.appendChild(br);
//
// var newO=document.createElement('input');
// newO.setAttribute('name','a');
// newO.setAttribute('type','file');
// obj.appendChild(newO);
}
catch (e)
{
}

return false;

}
function remove()
{
try{
var obj=document.getElementById('d1');
var l=obj.getElementsByTagName('br').length-1;
var br = document.getElementsByTagName('br')[l];
obj.removeChild(br);

l=document.getElementsByName('file[]').length-1;

var oldobj = document.getElementsByName('file[]')[l];
obj.removeChild(oldobj);
}
catch (e)
{
}
return false;
}
</SCRIPT>

idocsidocs
چهارشنبه 01 دی 1389, 14:53 عصر
مشکل اول رفع شد. (علتش احتمالا داشتن تگی با id=# ) به هر حال حل شد.
در رابطه با مشکل دوم من این کد را در مرورگر های مختلف تستش کردم مشکلی ندارد .
منظورت از کادر چیست



<?php $h = "hidden"; ?>
<div id="d1">
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
<br />
<input name="file[]" type="file" />
</div>
<a href="#" onclick="create();return false;">add</a>
<br />
<a href="#" onclick="remove();return false;">del</a>
<SCRIPT language="javascript">


function create()
{
try{
var obj=document.getElementById('d1');
var s="<br /><input name='file[]' type='file' />";
document.getElementById('d1').innerHTML+=s;
//
// var br=document.createElement('br');
// obj.appendChild(br);
//
// var newO=document.createElement('input');
// newO.setAttribute('name','a');
// newO.setAttribute('type','file');
// obj.appendChild(newO);
}
catch (e)
{
}

return false;

}
function remove()
{
try{
var obj=document.getElementById('d1');
var l=obj.getElementsByTagName('br').length-1;
var br = document.getElementsByTagName('br')[l];
obj.removeChild(br);

l=document.getElementsByName('file[]').length-1;

var oldobj = document.getElementsByName('file[]')[l];
obj.removeChild(oldobj);
}
catch (e)
{
}
return false;
}
</SCRIPT>

منظورم همین کادرهایی هست که می تونیم باهاشون فایل هار رو به سرور آپلود کنیم.


<input name="file[]" type="file" />