Jump to content
php.lv forumi

Formas sūtīšana, kam noslēpti lauki ar safari.


Maris-S

Recommended Posts

Atklāju vienu problēmu safari (apple mac) pārlūkā. No vienas puses pat loģiski, bet pagalam nederīga šitāda loģika.

 

Lieta tāda ka ja izveido formu un formai pieliek kādus laukus (nemēģināju ar dažāda tipa laukiem, bet ar file tipu gan šitā ir) un tad sūtot formu (tātad onsubmit) šim faila tipa laukam uzliek display:none, tad fails vienkārši nenosūtās (uploads nenotiek), jo nav jau ko sūtīt, fails ta noslēpts. Testam kods:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Upload</title>
<script type="text/javascript">
	function getElement (id) {
		if (document.getElementById)
			return document.getElementById(id);
		else
			if (document.all)
				return document.all[id];
			else
				if (document.lyers)
					return document.lyers[id];
				else
					return null;
	}
</script>
</head>

<body style="margin: 15px">
<pre>
<?php print_r($_FILES); ?>
</pre>

<form name="upload_form" action="" method="post" enctype="multipart/form-data" onsubmit="java script: getElement('file_field_id').style.display='none'; getElement('uploading_msg_id').style.display='block';">
	<div>
		<input type="hidden" name="MAX_FILE_SIZE" value="104857600">
		<input type="file" id="file_field_id" size="35" name="uploaded_file" value=""><br>
		<input type="submit" name="submit_upload" value="OK" onclick="java script: if (document.upload_form.uploaded_file.value.length==0) { alert('Please choose file.'); return false; }">
	</div>
	<div id="uploading_msg_id" style="position: relative; top: -46px; display: none">Uploading, please wait.....</div>
</form>
</body>
</html>

 

Varbūt kāds jau ir mēģinājis šo problēmu apiet, varbūt var padalīties risinājumā? Tas vajadzīgs vienkārši lai faila izvēles lauciņa vietā parādās uzraksts ka fails tiek uploadēts, vienkārši negribās tagad iet visai lapai cauri un likt kaut kādus abolute pozicionētus divus pa virsu, neslēpjot faila lauku, un katrā vietā rēķināt koordinātes, ja nu kaut kas izmainās. Var protams to 'uploading.....' likt jebkur lapā, bet nomainīt lauciņu ir daudz smukāk.

Link to comment
Share on other sites

Andrisp, paldies, šitas variants smuki nostrādāja, gatavs kods varētu būt, piemēram, šāds (mainījās tikai formas daļa):

 

<form name="upload_form" action="" method="post" enctype="multipart/form-data"
onsubmit="
	java script: getElement('file_field_id').style.position='absolute';
	getElement('file_field_id').style.left='-10000px';
	getElement('msg_id').style.display='block';
"
>
<input type="hidden" name="MAX_FILE_SIZE" value="104857600">
<div id="file_field_container_id">
	<div id="msg_id" style="display: none">Uploading, please wait.....</div>
	<input type="file" id="file_field_id" size="35" name="uploaded_file" value="">
</div>
<input type="submit" name="submit_upload" value="OK" onclick="java script: if (document.upload_form.uploaded_file.value.length==0) { alert('Please choose file.'); return false; }">
</form>

Link to comment
Share on other sites

×
×
  • Create New...