Originariamente inviato da lucavizzi
Grazie, sono commosso...
(Forse??!!!

)
@traverso
Non puoi inviare dati dalla pagina che riceve il form alla pagina che lo invia.
Nel tuo primo post hai parlato di un invio "...in background...", usi forse un iframe nascosto?
Se è così, ti basta aggiungere in fondo alla pagina che elabora il form il comando per aggiornare la finestra "madre".
codice:
<?php
....
$nomeDelFile='stringaColNome';
?>
<script type="text/javascript">
parent.document.getElementById('idTagDaAggiornare').innerHTML='<?php echo($nomeDelFile); ?>';
//nota il parent, serve per riferirsi alla pagina "principale"
</script>
</body>
</html>
Se vuoi alternative, posta il metodo di invio del form.
Ciao
non non uso alcun frame... scusa mi sono spiegato male io con il background... allora il form è questo:
codice:
<div id="newpost">
<script src="../js/nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() {
new nicEditor({
buttonList : ['fontSize','bold','italic','underline','strikeThrough','image','upload'],
uploadURI : 'fotoUpload.php'
}).panelInstance('new_cont_post');
});
</script>
<h4>Titolo</h4>
<form id="invio_post" method="post" action="newpost.php" enctype="multipart/form-data">
<input type="text" name="new_title" placeholder="Titolo del post" /></p>
<div id="new_cont">
<div id="new_cont_post_cont">
<textarea id="new_cont_post" name="new_cont_post" rows="16"></textarea>
</div>
</div>
<div id="cover_selector">
<?php
//Prova recupero dati passati con ajax
var_dump($_POST['image']);
/*$imgThumb = $_POST['image'];*/
//-------------------------------------------------------//
if(isset($imgThumb) && !(empty($imgThumb))){
$imm = $imgThumb;
//var_dump($imm);
$single_immage = explode(" - ", $imm);
//var_dump($single_immage);
for($t = 0; $t < count($single_immage); $t++){
echo '<div class="thumb_cont">[img]../fotoUpload/'.$single_immage[$t].'[/img]<input type="radio" class="radio_selector" name="'.$single_immage[$t].'"/></div>';
}
}else{echo "Non è stata caricata ancora nessuna foto nel tuo post";}
?>
</div>
<p class="cb"></p>
<button type="submit" name="nuovopost" id="btn_newpost">
<i class="icon-thumbs-up icon-2x">[/i]
inserisci</p>
</button>
<button type="button" name="select_cover" id="select_cover" title="Seleziona l'immagine di copertina"><i class="icon-picture icon-2x">[/i]</button>
<input type="hidden" name="cover" value="<?php //foto selezionata con il radio button ?>"/>
</form>
<p class="cb"></p>
</div>
mentre il file php che gestisce l'upload della foto (che non è richiamato dall'action del form) ma gestito dal file JS dell'editor è questo
codice:
<?php
session_start();
/* NicEdit - Micro Inline WYSIWYG
* Copyright 2007-2009 Brian Kirchoff
*
* NicEdit is distributed under the terms of the MIT license
* For more information visit http://nicedit.com/
* Do not remove this copyright message
*
* nicUpload Reciever Script PHP Edition
* @description: Save images uploaded for a users computer to a directory, and
* return the URL of the image to the client for use in nicEdit
* @author: Brian Kirchoff <briankircho@gmail.com>
* @sponsored by: DotConcepts (http://www.dotconcepts.net)
* @version: 0.9.0
*/
define('NICUPLOAD_PATH', '../fotoUpload'); // Set the path (relative or absolute) to
// the directory to save image files
define('NICUPLOAD_URI', '../fotoUpload'); // Set the URL (relative or absolute) to
// the directory defined above
$nicupload_allowed_extensions = array('jpg','jpeg','png','gif','bmp');
// You should not need to modify below this line
$rfc1867 = function_exists('apc_fetch') && ini_get('apc.rfc1867');
if(!function_exists('json_encode')) {
die('{"error" : "Image upload host does not have the required dependicies (json_encode/decode)"}');
}
$id = $_POST['APC_UPLOAD_PROGRESS'];
if(empty($id)) {
$id = $_GET['id'];
}
if($_SERVER['REQUEST_METHOD']=='POST') { // Upload is complete
if(empty($id) || !is_numeric($id)) {
nicupload_error('Invalid Upload ID');
}
if(!is_dir(NICUPLOAD_PATH) || !is_writable(NICUPLOAD_PATH)) {
nicupload_error('Upload directory '.NICUPLOAD_PATH.' must exist and have write permissions on the server');
}
$file = $_FILES['nicImage'];
$image = $file['tmp_name'];
$max_upload_size = ini_max_upload_size();
if(!$file) {
nicupload_error('Must be less than '.bytes_to_readable($max_upload_size));
}
$ext = strtolower(substr(strrchr($file['name'], '.'), 1));
@$size = getimagesize($image);
if(!$size || !in_array($ext, $nicupload_allowed_extensions)) {
nicupload_error('Invalid image file, must be a valid image less than '.bytes_to_readable($max_upload_size));
}
//============================================//
//Codifica id nome foto
$id = substr(md5($id.date("is")), 0, 10);
$filename = $id.'.'.$ext;
if(empty($immThumb)){
$immThumb = $filename;
}else{
$immThumb = $immThumb ." - ". $filename;
}
//===========================================//
$path = NICUPLOAD_PATH.'/'.$filename;
if(!move_uploaded_file($image, $path)) {
nicupload_error('Server error, failed to move file');
}
if($rfc1867) {
$status = apc_fetch('upload_'.$id);
}
if(!$status) {
$status = array();
}
$status['done'] = 1;
$status['width'] = $size[0];
$status['url'] = nicupload_file_uri($filename);
if($rfc1867) {
apc_store('upload_'.$id, $status);
}
nicupload_output($status, $rfc1867);
exit;
} else if(isset($_GET['check'])) { // Upload progress check
$check = $_GET['check'];
if(!is_numeric($check)) {
nicupload_error('Invalid upload progress id');
}
if($rfc1867) {
$status = apc_fetch('upload_'.$check);
if($status['total'] > 500000 && $status['current']/$status['total'] < 0.9 ) { // Large file and we are < 90% complete
$status['interval'] = 3000;
} else if($status['total'] > 200000 && $status['current']/$status['total'] < 0.8 ) { // Is this a largeish file and we are < 80% complete
$status['interval'] = 2000;
} else {
$status['interval'] = 1000;
}
nicupload_output($status);
} else {
$status = array();
$status['noprogress'] = true;
foreach($nicupload_allowed_extensions as $e) {
if(file_exists(NICUPLOAD_PATH.'/'.$check.'.'.$e)) {
$ext = $e;
break;
}
}
if($ext) {
$status['url'] = nicupload_file_uri($check.'.'.$ext);
}
nicupload_output($status);
}
}
// UTILITY FUNCTIONS
function nicupload_error($msg) {
echo nicupload_output(array('error' => $msg));
}
function nicupload_output($status, $showLoadingMsg = false) {
$script = '
try {
'.(($_SERVER['REQUEST_METHOD']=='POST') ? 'top.' : '').'nicUploadButton.statusCb('.json_encode($status).');
} catch(e) { alert(e.message); }
';
if($_SERVER['REQUEST_METHOD']=='POST') {
echo '<script>'.$script.'</script>';
} else {
echo $script;
}
if($_SERVER['REQUEST_METHOD']=='POST' && $showLoadingMsg) {
echo <<<END
<html><body>
<div id="uploadingMessage" style="text-align: center; font-size: 14px;">
Uploading...
Please wait
</div>
</body></html>
END;
}
exit;
}
function nicupload_file_uri($filename) {
return NICUPLOAD_URI.'/'.$filename;
}
function ini_max_upload_size() {
$post_size = ini_get('post_max_size');
$upload_size = ini_get('upload_max_filesize');
if(!$post_size) $post_size = '8M';
if(!$upload_size) $upload_size = '2M';
return min( ini_bytes_from_string($post_size), ini_bytes_from_string($upload_size) );
}
function ini_bytes_from_string($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
// The 'G' modifier is available since PHP 5.1.0
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
function bytes_to_readable( $bytes ) {
if ($bytes<=0)
return '0 Byte';
$convention=1000; //[1000->10^x|1024->2^x]
$s=array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB');
$e=floor(log($bytes,$convention));
return round($bytes/pow($convention,$e),2).' '.$s[$e];
}
?>
<script src="../js/jquery.js"></script>
<script>
var imgThumb = "<?php echo $immThumb ?>";
$.ajax({
type: "POST",
url:"nuovopost.php"
data: {'image': imgThumb},
success: data
});
</script>
che è la versione che ho scaricato con l'editor ho solo modificato la codifica del nome e lo script per provare a inviare i dati in Ajax....