Foros del Web » Programando para Internet » PHP »

Problema con <input value="<?=$variable?>">

Estas en el tema de Problema con <input value="<?=$variable?>"> en el foro de PHP en Foros del Web. Estoy creando un sistema de entradas con comentarios, mi proble es al querer borrar esos comentarios, lo hago mediante un form y con un select ...
  #1 (permalink)  
Antiguo 17/06/2011, 06:02
 
Fecha de Ingreso: enero-2011
Mensajes: 41
Antigüedad: 13 años, 3 meses
Puntos: 1
Problema con <input value="<?=$variable?>">

Estoy creando un sistema de entradas con comentarios, mi proble es al querer borrar esos comentarios, lo hago mediante un form y con un select while saco todas las ids y las meto en el value, pero al enviar el contenido del Value a la sentencia de borrado, siempre me borra la primera seleccione la que seleccione.
PD en el siguiente codigo e puesto un select para que lo vean, el Delete esta desactivado, y uso Xajax

Código PHP:
<?php
include('principal.php');


$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();




function 
procesar_borrar($form_borrar){
foreach(
$form_borrar['id'] as $indice => $valor) {

                            
$sql mysql_query("SELECT id FROM comentarios WHERE id = '".$valor."'") or die (mysql_error());
                if(
$row mysql_fetch_array($sql))

                
$id $row['id'];

if(empty(
$sql)){
        
$salida 'Vacio'.$valor;
        }else{
        
$salida "lleno".$valor;
        }
        
    
$borrar = new xajaxResponse('ISO-8859-1');
    
$borrar->addAssign("comentarioinsertado","innerHTML",$salida);

        return 
$borrar;
 
   }}
function 
procesar_comentario($form_comentario){
$hora time();
    
$reg mysql_query("insert into comentarios (comentario, iduser, idpost, hora) values ('" $form_comentario["comentario"] . "', '" $_SESSION['usuario_id'] . "', '" $_GET['id'] . "', '$hora')") or die (mysql_error());
        if(
$reg) {
    
$salida "<br><span style='color:green;'><b>Comentario enviado correctamente</b></span><br />";
$reg mysql_query("SELECT c.comentario, c.id, u.user FROM comentarios c, users u WHERE u.id = c.iduser AND c.iduser = '".$_SESSION['usuario_id']."' order by c.id desc") or die (mysql_error()); 
        if(
$row mysql_fetch_array($reg)) {
                    
$comentario $row['comentario']; // creamos la sesion "usuario_id" y le asignamos como valor el campo usuario_id
                    
$id $row['id'];
                    
$user $row['user'];
                    }
$comentar '<b>ID: <font color="red">'.$id.'</font> User: <font color="red">'.$user.'</font><br />Comentario: <br /></b>'.$comentario.'</b></font>';

        }else
$salida "<br><font color='green'><b>Post borrado correctamente</b></font><br />";
    
$comentario = new xajaxResponse('ISO-8859-1');
    
$comentario->addAssign("comentarioinsertado","innerHTML",$salida);
    
$comentario->addAssign("comentar","innerHTML",$comentar);

        return 
$comentario;
 
   }
function 
procesar_formulario($form_entrada){
$query="UPDATE post SET borrado = 1

WHERE id = '"
.$_GET['id']."'";
mysql_query($query) or die ();
$salida "<br><font color='green'><b>Post borrado correctamente</b></font><br />";
    
$inserta = new xajaxResponse('ISO-8859-1');
    
$inserta->addAssign("insertar","innerHTML",$salida);

        return 
$inserta;
 
   }
   
//registramos la funci?n creada anteriormente al objeto xajax
$xajax->registerFunction("procesar_borrar");
   
$xajax->registerFunction("procesar_comentario");
$xajax->registerFunction("procesar_formulario");

//El objeto xajax tiene que procesar cualquier petici?n
$xajax->processRequests();
//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
   
$xajax->printJavascript("xajax/");
 
$id ="SELECT * FROM post WHERE id = '".$_GET['id']."'";
$resultado mysql_query($id);
while(
$idpost mysql_fetch_array($resultado)){
$ido $idpost['id'];
    
$titulo $idpost['titulo'];
    
$contenido bbparse($idpost['contenido']);
    
$borrado $idpost['borrado'];
}
if (
$borrado == 1){echo 'Esto esta borrado<br />';}else{
if (empty(
$_SESSION['usuario_id'])){echo'logueate<br />';}else{
 
$id ="SELECT * FROM post WHERE user = '".$_SESSION['usuario_id']."' AND id = '".$_GET['id']."'";
$resultado mysql_query($id);
while(
$idpost mysql_fetch_array($resultado)){
$iduserpost $idpost['user'];

}
if (empty(
$iduserpost)){$iduserpost "";}
if (
$_SESSION['usuario_id'] != $iduserpost  AND $admin != 10){echo'no eres user de este post<br />';}else{
?>
<form  name="form1" id="formulario">
<span id="insertar"><input type="button" value="Borrar" onclick="xajax_procesar_formulario(xajax.getFormValues('formulario'))"><br />

</span>
<?php
}}
echo 
'<center><font size="6" color="red"><b>'.$titulo.'</b></font><br /><hr border="2">';
echo 
'<center><font size="4"><b>'.$contenido.'</b></font><br /><hr border="2">';
echo 
'<center>Comentarios: </center><br />';


echo
'<span id="comentar"></span>';
$result mysql_query("SELECT id FROM comentarios") or die (mysql_error()); 

while (
$row mysql_fetch_array($result)) {

    
$id $row['id'];
echo
'<span id="borrar"></span>';
?>


<span id="insertar"><input id="formulario" type="button" onclick="xajax_procesar_borrar(xajax.getFormValues('formulario'))" name='id[]' value="<?=$id?>"><br />

</span>
<?

}

?>
<form  name="form1" id="formulario">
<center>Comentario:<br />
<textarea name="comentario" class="shadow input" size="13" id="id"></textarea><br />
<input type="button" value="Borrar" onclick="xajax_procesar_comentario(xajax.getFormValues('formulario'))"><br />

<span id="comentarioinsertado"></span>
<?




if (@$admin == 10 AND $borrado == 1){
echo 
$titulo.'<br />';
echo 
$contenido;
}}

?>
He intentado usar un foreach pero nada, siempre hace lo mismo, o bien borra el ultimo(sin foreach) o bien borra el primero(con foreach), imagino que no sea el foreach lo que se utilice en estos casos, pero no e encontrado solucion.

Gracias un saludo ^^
  #2 (permalink)  
Antiguo 17/06/2011, 07:04
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con <input value="<?=$variable?>">

Código PHP:
Ver original
  1. function procesar_borrar($form_borrar){
  2.     foreach($form_borrar['id'] as $indice => $valor) {
  3.         $sql = mysql_query("SELECT id FROM comentarios WHERE id = '".$valor."'") or die (mysql_error());
  4.         if($row = mysql_fetch_array($sql))
  5.                 $id = $row['id'];
  6.         if(empty($sql)) {
  7.             $salida = 'Vacio'.$valor;
  8.         } else {
  9.             $salida = "lleno".$valor;
  10.         }
  11.         // ************ Bloque final *************
  12.         // Esta dentro del foreach... solo procesa 1 elemento!!!
  13.         $borrar = new xajaxResponse('ISO-8859-1');
  14.         $borrar->addAssign("comentarioinsertado","innerHTML",$salida);
  15.         return $borrar;
  16.         // ************ Bloque final *************
  17.    }
  18. }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 17/06/2011, 07:49
 
Fecha de Ingreso: enero-2011
Mensajes: 41
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Problema con <input value="<?=$variable?>">

Y como lo podria solucionar?

Etiquetas: value:, variables, formulario
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 01:23.