Programar botón con función

Hey kike
Que tal
Pues sigo con lo que ya t había e¡Mencionado, solo que ahora más desglosadito
Pasa que dependiendo del campo, yo quiero poner un botón que al darle clic me orden según ese campo, este botón, lo pongo en una tabla
Mi función es esta:
function consultaBase($campos,$orden)
{
    $consulta= "select no_parte".$_SESSION[desc_parte].$_SESSION[motivo].$_SESSION[no_oper].$_SESSION[fecha].$_SESSION[desc_oper].$_SESSION[hora].$_SESSION[costo].$_SESSION[costo_total].$_SESSION[lado].$_SESSION[tran].$_SESSION[turno].$_SESSION[no_nota]." from operaciones orderby". $_SESSION[no_oper];
    $resultado=mysql_query($consulta, $link) or die (mysql_error());
     $numeroderenglones = mysql_num_rows($resultado);
 }

No se en que parte poner dicha función, por lo que la pongo, después de una consulta = pero sin el order by y claro, no es función
El botón esta así:
<td><input type="submit" name="button" id="button" value="Descripcion de Oper" onclick="<?PHP ConsultaBase() ?>" /></td>
Ahí es donde mando llamar la función
Si te fijas, las variables $campos son mis variables de Sesión, ¿ahí qué?,
La variable $orden, es el campo por el que va ordenado, pero es otra variable de session, lo que intente es meter en la variable campos, todas las variables de sesión y orden, pero lo que no se de la función es en que me baso para saber que parámetros va a usar,
Se que el error esta en la función solo eso
Ayuda pliss
Pues me corre sin ningún error
solo ke no me ordena =(
Espero haber sido explicita
Ayuda pliss


1 respuesta

Respuesta
1
En parte no te funciona porque sigues metiendo las variables en SESSION, y si no has cambiado esa forma extraña de hacerlo, es que tampoco has cambiado el llamar a los valores de los campos del formulario con $_REQUEST, y además porque no usas las comillas en ninguna de las variables, se las llama así: ['nombre_valor'] entre comillas. Y además asignas a todas las variables un valor de texto que empieza por "," como ", desc_part", por lo que siempre te quedará el "select" como "select, desc_part,..." y no puede empezar por una coma, otra razón para no pasarlo en distintas variables de Ssesión si no construyendo correctamente la cadena.
Si te empeñas en meterlas en una variable de sesión, al menos debes cambiar la forma de hacerlo, o sea:
$_SESSION ['desc_parte']=$_REQUEST['desc_parte']; No pones nunca las comillas dentro si te fijas, además de que no vi que iniciases la sesión en el código que habías enviado y hay que usar, y hay que iniciarla en cualquier página que use las variables SESSION:
Poner siempre al principio session_start(); y
Nunca poner nada que imprima algo en pantalla antes que session_start(), ¿ni siquiera un espacio antes de <?php.
Como te dije, lo mejor es asignar los valores a una cadena, no a una variable de sesión, sobre todo porque después tienes que asignar de todas formas a una variable $cadena todas las que has creado en SESSION, no vas a pasar a la función todas esas variables, sería ilegible y un error, es más, si por necesidades de pasar los valores a otra página la quieres utiliazar, no uses 20 variables SESSION usa una
$_SESSION['cadena'] = $cadena;
Y en $cadena metes todo lo que estabas metiendo en variables de sesión, es decir (los else, como te puse en la anterior sobran, si no están a "on" no se meten en la variable:
if ($_REQUEST['desc_parte']=="on")
{
<span style="white-space: pre;"> </span>if ($cadena =="") //para gestionar el tema de las comas
<span style="white-space: pre;"> </span>$cadena =  "desc_parte";
<span style="white-space: pre;"> </span>else
<span style="white-space: pre;"> </span>$cadena = $cadena . ", desc_parte"; 
}
La función, bueno, de nada te sirve que te doga como hacerla y las variables que le tienes que pasar si luego sigues usando las mismas variables de sesión, ahí va otra vez (y sí, claro que $campos tiene lo mismo que tus variables de sesión, para eso se utiliza, para que los puedas pasar como parámetros y la función te sirva en cualquiera de los botones y no solo en uno:
function consultaBase($campos,$orden) 

    $consulta= "select no_parte".$campos." from operaciones orderby".$orden; 
    $resultado=mysql_query($consulta, $link) or die (mysql_error()); 
    $numeroderenglones = mysql_num_rows($resultado); 
 }
Y la llamas así (siempre que me hayas hecho caso y crees $_SESSION['cadena']) por ejemplo para el caso de ordenar por "desc_parte":
<input type="submit" name="boton_ordenar_desc_parte" id="boton_ordenar_desc_partevalue="Descripcion de Oper" onclick="<?php ConsultaBase($_SESSION['cadena'],"desc_parte"); ?>" />
Así le estás pasando la variable $campos con la lista de campos que están a "on" y según el botón que sea le dices que lo ordene con la variable $orden.
Kike
Heyy kike, ke tal, pske te digo si ya sabes
ps Gracias por tu gran ayuda, al final no lo hice con funcion, pero me sirvio de mucho todos los tips ke me diste para programar mejor, no solo de esta pregunta, sino de las anteriores, eske ps hay muchas formas de programar y ps he aprendido mucho de ti
Estoy haciendo mi residencia y pues me has ayudado tremendo, pero ya casi termino, espero ya no molestart
Gracias, muchas gracias por esa paciencia, síguele así
nos vemos, tal vez te siga molestando, pero por mientras, descansa de mi no por mucho tiempo ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas