Foros del Web » Programando para Internet » Javascript » Frameworks JS »

me falta solo poder subir fotos para hacer mi blog ajax

Estas en el tema de me falta solo poder subir fotos para hacer mi blog ajax en el foro de Frameworks JS en Foros del Web. Hola a todos, he hecho un blog en ajax que me funciona muy bien, parecido al wordpress, y con base de datos. y y me ...
  #1 (permalink)  
Antiguo 03/04/2008, 16:26
 
Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
me falta solo poder subir fotos para hacer mi blog ajax

Hola a todos, he hecho un blog en ajax que me funciona muy bien, parecido al wordpress, y con base de datos. y y me guarda el nombre, la fecha, el comentario y la ruta de la imagen que guardo en un input type= "file" a la base de datos...
lo unico que quiero y me he cabeseado dias es poder subir la imagen a mi carpeta y despues mostrarla que eso me preocupare yo, pero subir la imagen se me hace un problema, me he cabeseado dias y dias,

tengo este index

Cita:
<!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>
<title>Database-Enabled AJAX</title>
<link href="css/layout.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/Ajax.js"></script>
<script type="text/javascript" src="js/Page.js"></script>

</head>

<body onload="Ajax.Request('services/connector.php?method=get', Page.onResponse);">
<div id="layout" align="center">
<div id="posts"></div>
<p><input type="button" value="add new post" onclick="Ajax.Request('services/connector.php?method=save', Page.onResponse);" /></p>
<p><div id="loading"></div></p>
</div>

</body>
</html>

este mysql_connect (le puse ese define porsiacaso)

Cita:
<?php

DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', '');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'ajax4');


define('IMG_DIR', 'C:\wamp\www\Tutorial_ajax\ajax13\upload');
// Make the connnection and then select the database.
$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error() );
mysql_select_db (DB_NAME) OR die ('Could not select the database: ' . mysql_error() );

?>



este post.class, que maneja todo lo de la base de datos



Cita:
<?php

class Post
{
var $table;

function Post()
{
require_once('mysql_connect.php');
$this->table = "webref_ajax";
}

function dbConnect()
{
DEFINE ('LINK', mysql_connect (DB_HOST, DB_USER, DB_PASSWORD));
}

function get()
{
$this->dbConnect();
$query = "SELECT * FROM $this->table ORDER BY id asc";
$result = mysql_db_query (DB_NAME, $query, LINK);

$xml = '<?xml version="1.0" encoding="ISO-8859-1" ?>';
$xml .= '<posts>';
while($row = mysql_fetch_array($result))
{
$xml .= '<post>';
$xml .= '<id>'. $row['id'] .'</id>';
$xml .= '<date>'. $row['date'] .'</date>';
$xml .= '<title><![CDATA['. $row['title'] .']]></title>';
$xml .= '<description><![CDATA['. $row['description'] .']]></description>';
$xml .= '<image><![CDATA['. $row['image'] .']]></image>';
$xml .= '</post>';
}
$xml .= '</posts>';
mysql_close();

return $xml;
}

function save($id, $title, $description, $image)
{
$this->dbConnect();
$query = "SELECT * FROM $this->table WHERE id='$id'";
$result = @mysql_query ($query);
if (mysql_num_rows($result) > 0)
{
$query = "UPDATE $this->table SET title='$title', description='$description', image='$image', date=NOW() WHERE id='$id'";
$result = @mysql_query($query);
}
else
{
$query = "INSERT INTO $this->table (title, description, image, date) VALUES ('$title', '$description', '$image', NOW())";
$result = @mysql_query($query);
}
mysql_close();
return $this->get();
}

function delete($id)
{
$this->dbConnect();
$query = "DELETE FROM $this->table WHERE id='$id'";
$result = @mysql_query($query);
mysql_close();
return $this->get();
}

}

?>

este connector que es muy importante por q tiene los get


Cita:
<?php

header("Content-Type: application/xml; charset=UTF-8");
require_once("../classes/Post.class.php");
$post = new Post();
echo $post->$_GET['method']($_GET['id'], $_GET['title'], $_GET['description'], $_GET['image']);

?>


este ajax.js que es que llama al xmlhttprequest clasico


Cita:
var Ajax = new Object();

Ajax.Request = function(url, callbackMethod)
{
Ajax.request = Ajax.createRequestObject();
Ajax.request.onreadystatechange = callbackMethod;
Ajax.request.open("POST", url, true);
Ajax.request.send(url);
}

Ajax.createRequestObject = function()
{
var obj;
if(window.XMLHttpRequest)
{
obj = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
obj = new ActiveXObject("MSXML2.XMLHTTP");
}
return obj;
}

Ajax.CheckReadyState = function(obj)
{
if(obj.readyState == 0) { document.getElementById('loading').innerHTML = "Sending Request..."; }
if(obj.readyState == 1) { document.getElementById('loading').innerHTML = "Loading..."; }
if(obj.readyState == 2) { document.getElementById('loading').innerHTML = "Loading..."; }
if(obj.readyState == 3) { document.getElementById('loading').innerHTML = "Loading..."; }
if(obj.readyState == 4)
{
if(obj.status == 200)
{
document.getElementById('loading').innerHTML = "";
return true;
}
else
{
document.getElementById('loading').innerHTML = "HTTP " + obj.status;
}
}
}
  #2 (permalink)  
Antiguo 03/04/2008, 16:26
 
Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Re: me falta solo poder subir fotos para hacer mi blog ajax

Y aca viene lo mas importante, el page.js que donde estan todas las funciones y variables para armar el html... y necesito meter un formulario en la funcion onResponse en la var html para poder subir la foto desde ahi y que quede utilizable.. pero no me deja ponerle un formulario en esa parte un formulario que lo pondre mas abajo




Cita:
var Page = new Object();
Page.index;
Page.startUpload = function()
{
document.getElementById('f1_upload_process').style .visibility = 'visible';
document.getElementById('f1_upload_form').style.vi sibility = 'hidden';
return true;
}

Page.stopUpload = function(success)
{
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!<\/span><br/><br/>';
}
else {
result = '<span class="emsg">There was an error during file upload!<\/span><br/><br/>';
}
document.getElementById('f1_upload_process').style .visibility = 'hidden';
document.getElementById('f1_upload_form').innerHTM L = result + '<label>File: <input name="image" type="file" size="30" /><\/label><label><input type="submit" name="submitBtn" class="sbtn" value="Upload" /><\/label>';
document.getElementById('f1_upload_form').style.vi sibility = 'visible';
return true;
}
Page.onResponse = function()
{
if(Ajax.CheckReadyState(Ajax.request))
{
document.getElementById('posts').innerHTML = "";
var response = Ajax.request.responseXML.documentElement;
var _post = response.getElementsByTagName('post');

if(_post.length == 0)
{
document.getElementById('posts').innerHTML = 'There are currently no available posts.<br/>Click the "add new post" button above to add a new post';
}

var postDisplay = "";
var formPostDisplay = "";

for(var i=0; i<_post.length; i++)
{
var _title = response.getElementsByTagName('title')[i].firstChild.data;
var _description = response.getElementsByTagName('description')[i].firstChild.data;
var _image = response.getElementsByTagName('image')[i].firstChild.data;
var _date = response.getElementsByTagName('date')[i].firstChild.data;
var _id = response.getElementsByTagName('id')[i].firstChild.data;

if(_title == "" && _description == "")
{
postDisplay = "style='display:none'";
formPostDisplay = "style=''";
}
else
{
postDisplay = "style=''";
formPostDisplay = "style='display:none'";
}

var html = "<div class='post' id='post_"+ i +"' "+ postDisplay +">"
+ "<div class='title' id='title_"+ i +"'>"+ _title
+ "&nbsp;&nbsp;<a href=\"javascript:Page.toggle('"+ i +"');\">edit</a></div>"
+ "<div class='description' id='description_"+ i +"'>"+ _description +"</div>"
+ "<div class='image' id='image_"+ i +"'>"+ _image +"</div>"
+ "<div class='date' id='date_"+ i +"'>"+ _date +"</div>"
+ "</div>"
+ "<div class='post' id='formPost_"+ i +"' "+ formPostDisplay +">"
+ "<div class='title'><input type='text' name='title' id='formTitle_"+ i +"' size='60' value='"+ _title +"'></div>"
+ "<div class='description'><textarea type='text' id='formDescription_"+ i +"' wrap='virtual' cols='60' rows='15'>"+ _description +"</textarea></div><br>"
+ "<div class='image'><input type='file' name='image' id='formImage_"+ i +"' size='30' value='"+ _image +"'></div>"
+ "<div class='date'>"+ _date +"</div>"
+ "<input type='button' name='cancel' value='cancel' onclick=\"javascript:Page.toggle('"+ i +"');\">"
+ "<input type='button' name='delete' value='delete' onclick=\"javascript:Page.deletePost("+ _id +");\">"
+ "<input type='button' name='submit' value='save' onclick=\"javascript:Page.saveNewPost("+ _id +","+ i +");\">"
+ "</div>";

document.getElementById('posts').innerHTML += html;
}
}
}

Page.saveNewPost = function(_id, _index)
{
var newDescription = document.getElementById("formDescription_"+ _index).value;
var newTitle = document.getElementById("formTitle_"+ _index).value;
var newImage = document.getElementById("formImage_"+ _index).value;
Page.setIndex(_index);
Ajax.Request("services/connector.php?method=save&id="+ _id +"&title="+ newTitle +"&description="+ newDescription +"&image="+ newImage, Page.getPost);
}

Page.deletePost = function(_id)
{
Ajax.Request("services/connector.php?method=delete&id="+ _id, Page.onResponse);
}


Page.getPost = function()
{
if(Ajax.CheckReadyState(Ajax.request))
{
var response = Ajax.request.responseXML.documentElement;
var _title = response.getElementsByTagName('title')[Page.getIndex()].firstChild.data;
var _description = response.getElementsByTagName('description')[Page.getIndex()].firstChild.data;
var _image = response.getElementsByTagName('image')[Page.getIndex()].firstChild.data;
var _date = response.getElementsByTagName('date')[Page.getIndex()].firstChild.data;

document.getElementById("title_"+ Page.getIndex()).innerHTML = _title;
document.getElementById("description_"+ Page.getIndex()).innerHTML = _description;
document.getElementById("image_"+ Page.getIndex()).innerHTML = _image;
document.getElementById("date_"+ Page.getIndex()).innerHTML = _date;
Page.toggle(Page.getIndex());
}
}

Page.toggle = function(id)
{
if(document.getElementById("formPost_"+id).style.d isplay == 'none')
{
document.getElementById("formPost_"+id).style.disp lay = '';
document.getElementById("post_"+id).style.display = 'none';
}
else if(document.getElementById("post_"+id).style.displ ay == 'none')
{
document.getElementById("post_"+id).style.display = '';
document.getElementById("formPost_"+id).style.disp lay = 'none';
}
}

Page.setIndex = function(_index) { Page.index = _index; }
Page.getIndex = function() { return Page.index; }

este es el formulario


Cita:
<form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();" >
<p id="f1_upload_process" align="center">Loading...<br/><img src="loader.gif" /><br/></p>
<p id="f1_upload_form" align="center"><br/>
<label>
<input name="myfile" type="file" size="30" />
</label>
<label>
<input type="submit" name="submitBtn" class="sbtn" value="Upload" />
</label>
</p>

<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>

y este es el upload.php


Cita:
<?php
// Edit upload location here
$destination_path = getcwd().DIRECTORY_SEPARATOR;

$result = 0;

$target_path = $destination_path . basename( $_FILES['myfile']['name']);

if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
$result = 1;
}

sleep(1);
?>

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>


¿COMO SE PUEDE INGRESAR UN FORMULARIO EN UNA VARIABLE, OSI NO SE PUEDE QUE ES LO QUE CREO, QUE SE PUEDE HACER?
  #3 (permalink)  
Antiguo 03/04/2008, 16:27
 
Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Re: me falta solo poder subir fotos para hacer mi blog ajax

la base de datos es esta

Cita:
CREATE TABLE `webref_ajax` (
`id` int(11) NOT NULL auto_increment,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`description` longtext NOT NULL,
`title` varchar(33) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:50.