Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/08/2009, 13:48
ramichanu
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Buenas,
Tengo una web que lista una serie de destacados en la parte derecha mediante la columna orden:

Código:
 $db = sqlite_open('database', 0666, $sqliteerror);
 $consulta = sqlite_query($db,"SELECT * FROM destacados ORDER BY orden");
 $destacados = sqlite_fetch_all($consulta);
 foreach ($destacados as $destacado){
	 $id=$destacado['id'];
	 //$consulta2=sqlite_query($db, "SELECT * FROM destacados WHERE id='".$contid."'");
	 //$destacados2= sqlite_fetch_all($consulta2);
	 //foreach($destacados2 as $destacado2);
	 $titulo=$destacado['titulo'];
	 $texto=$destacado['texto'];
	 $link=$destacado['link'];
	 //$idDestacado=$destacado2['id'];
	 
?>
	 
    <table width="150" height="86" border="0">
      <tr>
        <td height="15" colspan="2" bgcolor="#FFFF33"><?php echo $titulo; ?></td>
      </tr>
      <tr>
        <td height="29" colspan="2" bordercolor="#FFCC33" bgcolor="#FFCC33"><div align="left"><?php echo $texto; ?>
        </div></td>
      </tr>
      <tr>
        <td height="15" colspan="2" bgcolor="#FFFF33"><div align="center"><a href="<?php echo $link; ?>" target="_blank">Clic aquí</a></div></td>
      </tr>
      <tr>

        <td width="75" height="15"><div style="cursor:pointer;" align="center" class="style13" id="<?php echo $id; ?>" onclick=" mover(this.id, '-1')"> SUBIR</div></td>
        <td width="65"><div style="cursor:pointer;" align="center" class="style13" id="<?php echo $id; ?>" onclick="mover(this.id,'1');">BAJAR</div></td>
      </tr>
    </table>
     
  <?php
  //$contid++;
  }
  ?>
En cada destacado tengo 1 div 'Subir' que se encarga de quitarle -1 al campo 'orden' de la base de datos, para que así suba un puesto.

Código:
div style="cursor:pointer;" align="center" class="style13" id="<?php echo $id; ?>" onclick=" mover(this.id, '-1')"> SUBIR</div>
El envio de parámetros lo hago mediante AJAX y lo envía a la página orden.php:

Código:
function mover(id, accion)
{
	
	new Ajax.Request('orden.php', {
		method:'get', 
		parameters:'id='+id+'&sumar='+accion, 
		onFailure: 
			function(){alert('fallo');}, 
		onSuccess: 
			function(){alert('Exito'); location.reload();}
		});
	
}
La función con AJAX me informa que se ha realizado ("Exito") pero no parece enviar los parámetros correctamente porque no se modifican de la base de datos, simplemente siguen igual. Sin embargo si entro en la página "orden.php" y escribo en la barra de dirección "orden.php?id=3&accion=-1" funciona correctamente, sí que resta un 1 al orden del id, en este caso 3.

Por cierto, el código de orden.php es el siguiente:

Código:
<?php 
$db = sqlite_open('database',0666, $sliteerror);
$destacado= sqlite_query($db, "SELECT * FROM destacados WHERE id=".$_GET['id']);
$fila= sqlite_fetch_all($destacado);
foreach($fila as $campo){
	$ordenInicial = $campo['orden'];
	$ordenFinal = $campo['orden']+$_GET['accion'];
}

sqlite_query($db, "UPDATE destacados SET orden=".$ordenInicial." WHERE orden=".$ordenFinal);
sqlite_query($db, "UPDATE destacados SET orden=".$ordenFinal." WHERE id=".$_GET['id']);

?>
Gracias.

He utilizado Ajax.Request para enviar parámetros y nunca me ha fallado, creo que el problema podría ser al enviar parámetros por la función.
Por favor que alguien me eche una mano.

Última edición por GatorV; 24/08/2009 a las 14:04