Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > แนะนำหน่อย : ตรวจสอบค่าว่างของ input type="file" ในการอัพโหลดแบบหลาย array



 

แนะนำหน่อย : ตรวจสอบค่าว่างของ input type="file" ในการอัพโหลดแบบหลาย array

 



Topic : 043411



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์




ตัดโค้ดมาคร่าวๆดังนี้ครับ (งานจริงต้องอัพโหลดไฟล์พร้อมกันได้ 20 ไฟล์)
<form name="form1" method="post" action="senddata.php" enctype="multipart/form-data">
<script type="text/javascript">
function ck_frm01(){
var ck = document.getElementById('ckk01');
if(ck.checked == true){
document.getElementById('frm_txt01').style.display = "";
}else{
document.getElementById('frm_txt01').style.display = "none";
}
}
</script>
<script type="text/javascript">
function ck_frm02(){
var ck = document.getElementById('ckk02');
if(ck.checked == true){
document.getElementById('frm_txt02').style.display = "";
}else{
document.getElementById('frm_txt02').style.display = "none";
}
}
</script>
<input type="checkbox" name="ckk01" id="ckk01" value="ckk01" onClick="ck_frm01();" />
<span class="style39">แบบฟอร์ม01<br>
</span>
<div id="frm_txt01" style="display:none;">
<input type="file" name="filUpload[]">
</div>

<input type="checkbox" name="ckk02" id="ckk02" onClick="ck_frm02();" />
<span class="style39">แบบฟอร์ม02</span>
<div id="frm_txt02" style="display:none;">
<input type="file" name="filUpload[]" >
</div>
<div align="center">
<input name="submit" type="submit" class="style54" value="ส่งค่า" >
</div>
</form>
อธิบายสิ่งที่ทำไว้แล้วก่อนนะครับ
คือเมื่อผม เลือก Checkbox ckk01 หรือ ckk02 แล้วก็จะปรากฎ ช่องสำหรับ browse ไฟล์ในการอัพโหลด
ผมทำถึงส่งไฟล์เข้าตาม path ได้แล้ว เปลี่ยนชื่อได้แล้ว ส่งชื่อเข้า MySql ได้แล้ว ทำพร้อมกันได้ 20ไฟล์แล้ว
ข้อที่ 1 อยากให้ช่วยคือ ถ้ามีค่าว่างใน FilUpoad ของแต่ละ Array ใดๆ หลังการ เลือก Checkbox
แล้ว ให้มีข้อความเตือนบอกผู้ใช้งานครับ
(หากมีการเลือก Checkbox ให้ตรวจสอบห้ามมีค่าว่างใน <input type="file" name="filUpload[]" >แต่ละอัน ถ้าไม่มีค่า Checkbox ก็ไม่ต้องตรวจ ประมาณนั้น)
ข้อที่ 2 ผมมี array ในการ upload ไฟล์พร้อมกันจริงๆ 20 ไฟล์ พร้อมกัน จะรวม Javascript ในการ style.display ให้มันสั้นและง่าย กว่าเดิมได้หรือไม่ครับ

รบกวนผู้รู้ กูรู ช่วยแนะนำด้วยนะครับ
ขอบคุณครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-05-28 15:37:30 By : apisitp View : 4897 Reply : 6
 

 

No. 1



โพสกระทู้ ( 708 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

Code (PHP)
<?php
$form_total = 20;  // จำนวนฟอร์มที่ต้องการครับ
?>
<script type="text/javascript"> 
function ck_frm(obj){ 
	var id = obj.id.substring(3,5);
	var ck = document.getElementById('ckk'+id); 
	var frm = document.getElementById('frm_txt'+id);
	if(ck.checked == true){ 
		frm.style.display = ""; 
	}else{ 
		frm.style.display = "none"; 
	} 
} 
function chkFile(){
	var input = document.getElementsByTagName('input'); 
	var checked = 0;
	for(i=0;i<input.length;i++){
		if(input[i].type == 'checkbox' && input[i].name.substring(0,3) == 'ckk' && input[i].checked){
			checked = 1;
			continue;
		}
		if(input[i].type == 'file' && input[i].name == 'filUpload[]' && checked == 1 && input[i].value == ''){
			var id = input[i].parentNode.id.replace('frm_txt','');
			checked = 0;
			alert('กรุณาเลือกไฟล์ที่ต้องการในแบบฟอร์ม' + id + ' ด้วยครับ');
			return;
		}
	}
	document.getElementById("form1").submit();
}
</script>
<form id="form1" name="form1" method="post" action="senddata.php" enctype="multipart/form-data">

<?php for($i=1;$i<=$form_total;$i++): $j = substr('0'.$i,-2);?>
<input type="checkbox" name="ckk<?=$j?>" id="ckk<?=$j?>" value="ckk<?=$j?>" onClick="ck_frm(this);" />
<span class="style39">แบบฟอร์ม<?=$j?><br>
</span> 
<div id="frm_txt<?=$j?>" style="display:none;"> 
<input type="file" name="filUpload[]">
</div> 
<?php endfor?>
<div align="center">
<input name="submit" type="button" onclick="chkFile()" class="style54" value="ส่งค่า" >
</div>
</form> 



จิงๆถ้าใช้ JQuery จะง่ายกว่าครับ แต่ผมอยากให้ดูวิธีใช้คำสั่ง javascript พื้นฐานก่อนครับ






Date : 2010-05-28 16:41:02 By : kerb
 


 

No. 2



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ขอบคุณคร้าบ....
พอดีกลับบ้านเลยเพิ่งมาเปิดอ่าน

แล้วก็มาลองเล่น Code ดูครับ....
แต่มันยังติดปัญหา อีกนิดครับ....

ผมทดสอบ Browse ไฟล์ แบบฟอร์ม 01 แล้ว พอกดปุ่มส่งค่า
โปรแกรมก็ฟ้องว่า 'กรุณาเลือกไฟล์แบบฟอร์ม 02 ด้วยครับ'
ซึ่งข้อความที่ฟ้องมานี้ ผมยังไม่ทำทำการ checkbox แบบฟอร์ม 02 เลยครับ
รบกวนช่วยแนะนำอีกนิดนะครับ
Date : 2010-05-31 13:30:00 By : apisitp
 

 

No. 3



โพสกระทู้ ( 708 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

Code (PHP) โทษทีครับ ผมพลาดเอง ตรง line ที่ 25 จะ เห็น checked = 0; ซึ่งผมเอาไว้ clear ค่า ว่าได้ผ่านการเช็ค input นี้แล้ว จิงๆ มันต้องอยู่นอก if ดังโค้ดข้างล่างคับ
<?php
$form_total = 20;  // จำนวนฟอร์มที่ต้องการครับ
?>
<script type="text/javascript"> 
function ck_frm(obj){ 
	var id = obj.id.substring(3,5);
	var ck = document.getElementById('ckk'+id); 
	var frm = document.getElementById('frm_txt'+id);
	if(ck.checked == true){ 
		frm.style.display = ""; 
	}else{ 
		frm.style.display = "none"; 
	} 
} 
function chkFile(){
	var input = document.getElementsByTagName('input'); 
	var checked = 0;
	for(i=0;i<input.length;i++){
		if(input[i].type == 'checkbox' && input[i].name.substring(0,3) == 'ckk' && input[i].checked){
			checked = 1;
			continue;
		}
		if(input[i].type == 'file' && input[i].name == 'filUpload[]' && checked == 1 && input[i].value == ''){
			var id = input[i].parentNode.id.replace('frm_txt','');
			alert('กรุณาเลือกไฟล์ที่ต้องการในแบบฟอร์ม' + id + ' ด้วยครับ');
			return;
		}
		checked = 0;
	}
	document.getElementById("form1").submit();
}
</script>
<form id="form1" name="form1" method="post" action="senddata.php" enctype="multipart/form-data">

<?php for($i=1;$i<=$form_total;$i++): $j = substr('0'.$i,-2);?>
<input type="checkbox" name="ckk<?=$j?>" id="ckk<?=$j?>" value="ckk<?=$j?>" onClick="ck_frm(this);" />
<span class="style39">แบบฟอร์ม<?=$j?><br>
</span> 
<div id="frm_txt<?=$j?>" style="display:none;"> 
<input type="file" name="filUpload[]">
</div> 
<?php endfor?>
<div align="center">
<input name="submit" type="button" onclick="chkFile()" class="style54" value="ส่งค่า" >
</div>
</form> 


Date : 2010-06-01 01:16:35 By : kerb
 


 

No. 4



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ขั้นเทพตัวจริง เรื่องตรวจไฟล์ยอดเยี่ยม

แต่รบกวนอีกรอบเถอะ พอกด Submit button
ค่ามันไม่ยอมส่ง ไปที่หน้าต่อไป senddata.php
ซึ่งโค้ด มันก็แต่ติดต่อ ฐานข้อมูลธรรมดา รบกนอีกรอบเถอะครับ

<?PHP

include "connect.php";
mysql_connect($host,$user,$pw) or die("µÔ´µèÍ Host äÁèä´é");
mysql_select_db($dbname) or die("µÔ´µèÍ°Ò¹¢éÍÁÙÅäÁèä´é");
mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client='tis620'");
mysql_query("SET character_set_connection='tis620'");
mysql_query("collation_connection = tis620_thai_ci");
mysql_query("collation_database = tis620_thai_ci");
mysql_query("collation_server = tis620_thai_ci");



for($i=0;$i<count($_FILES["filUpload"]["name"]);$i++)
{if($_FILES["filUpload"]["name"][$i] != "")
echo "1-".$_FILES["filUpload"]["name"][$i];
echo "<BR>";
$new_name=$idns."-".$_FILES["filUpload"]["name"][$i];
$path= "myfile/".$new_name;
{
echo "µÃǨÊͺ 24 ¤ÃÑé§ 24 Ãͺ".$_FILES["filUpload"]["name"][$i];
echo "<BR>";
if(copy($_FILES['filUpload']['tmp_name'][$i], $path))
{

$DateNow=Date("d_m_Y_H_i");
$tmp_file =$_FILES['filUpload']['tmp_name'][$i];
$fileme =$_FILES['filUpload']['name'][$i];

mysql_query("SET character_set_results=tis620");
mysql_query("SET character_set_client='tis620'");
mysql_query("SET character_set_connection='tis620'");
mysql_query("collation_connection = tis620_thai_ci");
mysql_query("collation_database = tis620_thai_ci");
mysql_query("collation_server = tis620_thai_ci");
//*** Insert Record ***//
$strSQL = "INSERT INTO pdffile ";
$strSQL .="(idns ,name ,plan,filename,dateupload ) VALUES ('$idns','$name','$plan','$new_name','$DateNow')";
$objQuery = mysql_query($strSQL);
}}}
?>


ขอบคุณมาก ๆ ครับ.....
Date : 2010-06-01 09:14:08 By : apisitp
 


 

No. 5



โพสกระทู้ ( 708 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

เป็นเพราะตรงที่ highlight คับ ห้ามใช้ชื่อ submit ให้เอาออก หรือเปลี่ยนชื่อคับ มันมีผลตอนเรียก ฟังก์ชั่น submit() ครับ

<input name="submit" type="button" onclick="chkFile()" class="style54" value="ส่งค่า" >
Date : 2010-06-01 10:38:16 By : kerb
 


 

No. 6



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ได้แล้ว ๆ ๆ ๆ ๆ ๆ เย้ ๆ ๆ ๆ ๆ ๆ
ขอบคุณอย่างแรง.....
ได้ความรู้เพิ่มขึ้นมากมายเลยครับ
Date : 2010-06-01 10:41:21 By : apisitp
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : แนะนำหน่อย : ตรวจสอบค่าว่างของ input type="file" ในการอัพโหลดแบบหลาย array
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่