Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/12/2007, 13:44
Avatar de El_Metallick
El_Metallick
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años
Puntos: 16
Problerma al tratar de hacer adjuntos al estilo gmail

Hola maestros primero que todo no se muy bien si mi problema es de ajax o de javascript, asique si no corresponde aca pido a los moderadores que lo muevan y sorry .

Bueno vamos al grano, trato de hacer un sistema de adjuntos como el de gmail para las noticias en mi sitio, para ello hago lo siguiente:

dina.php
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>dina</title>
<link href="../includes/style.css" rel="stylesheet" type="text/css" />
<script language="javascript">
function addInputFile() {    
    var nInputs = document.getElementById('nInputs').value
    
    // Obtener la instancia del objeto XMLHttpRequest
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        ajax = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) { // Internet Explorer
        ajax = new ActiveXObject("Microsoft.XMLHTTP");
    }

    ajax.open("GET", "includes/addInputFile.php?id="+nInputs,true);
    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4) {
            document.getElementById('inputFile').innerHTML = document.getElementById('inputFile').innerHTML + ajax.responseText
        }
    }
    
    ajax.send(null)
    
    document.getElementById('nInputs').value = ++nInputs;
}

function resultadoUpload(estado,file,nFile) {
    var link = '<a href="#">Eliminar</a> - <a href="#">Ver</a>';

    if (estado == 0) {
        var mensaje = file;
    }
    else if (estado == 1) {
        var mensaje = alert('Error! - El Archivo no llego al servdor' + link);
    }
    else if (estado == 2) {
        var mensaje = alert('Error! - Solo se permiten Archivos que no sean Imagenes' + link);
    }
    else if (estado == 3) {
        var mensaje = alert('Error! - No se pudo copiar Archivo. Posible problema de permisos en server' + link);
    }

    document.getElementById('formUpload'+nFiles).innerHTML=mensaje;
    }
</script>
</head>
<body>
  <form action="new_add.php" method="post" enctype="multipart/form-data">
    Titulo:<br />
    <input name="title" type="text" class="adminNewAddInput" /><br /><br />
    Adjuntos:<br />
    <div id="inputFile"></div>
    <input type="hidden" id="nInputs" name="nInputs" value="0" /><a href="#" onClick="addInputFile()">Adjuntar Archivo</a><br /><br />
    <p align="center"><input type="submit" name="submit" value="Agregar" /></p>
  </form>
</body>
</html>
new_add_attachment.php
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>new_add_attachment</title>
</head>
<body>
<?php
    $id = $_POST['id'];
    
    $type = substr($_FILES['fileUpload']['type'], 0, 5);

    $dir = '../files/news';

    if(isset($_FILES['fileUpload']['tmp_name'])) 
    {
        if(($type == 'application') || ($type == '')) 
        {
            if (!copy($_FILES['fileUpload']['tmp_name'], $dir.$_FILES['fileUpload']['name']))
            {
                echo '<script>parent.resultadoUpload (\'3\', \''.$_FILES['fileUpload']['name'].'\',\''.$id'.\');</script>';
            }
            else
            {
                echo '<script>parent.resultadoUpload (\'0\', \''.$_FILES['fileUpload']['name'].'\',\''.$id'.\');</script>';
            }
        }
        
        echo '<script>parent.resultadoUpload (\'2\', \''.$_FILES['fileUpload']['name'].'\',\''.$id'.\');</script>';
    }
    
    echo '<script>parent.resultadoUpload (\'1\', \''.$_FILES['fileUpload']['name'].'\',\''.$id'.\');</script>';
?>
</body>
</html>
addInputFile.php
Código:
<?php
    if(isset($_GET["id"]))
    {
        $id = $_GET["id"];
?>
<div id="formUpload<?= $id ?>">
  <form method="post" enctype="multipart/form-data" action="new_add_attachment.php" target="iframeUpload<?= $id ?>">
    <input type="hidden" name="id" value="<?= $id ?>" /><input name="file<?= $id ?>" type="file" id="file<?= $id ?>" size="50" class="adminNewAddFile" onChange="javascript: submit();" /><br />
    <iframe name="iframeUpload<?= $id ?>" style="display:none"></iframe>
  </form>
</div>    
<?php
    } 
?>
Funciona todo bien hasta que trato de subir el archivo osea hasta que se tiene que ejecutar el onChange del campo tipo file, es ahi cuando el firebug me dice:

submit is not a function
onchange(change )

Y no me sube el archivo.

Agradeceria cualquier tipo de ayuda. Saludos y gracias de antemano
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!