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