PDA

Ver la Versión Completa : AYUDA!!!! Sugerancias por favor...


Rafafa
06-09-2006, 21:12:40
Hola a todos, soy nuevo en el foro y nuevo en PHP, tengo un problemita espero me ayuden.:)

Tengo una pagina PAG1.php donde tengo un menu para configurar una consulta a una BD(mysql), cada opcion muestra ciertos parametros, los cuales los despliego dinamicamente por medio de el evento onClick y de una funcion en JS.:) lo que genero son cuadros de texto(<input type="text"...)y un boton(buscar).
La opcion mas facil sobre la que espero me puedan ayudar y con la que yo creo que se me aclaran mis dudas es cuando se quieren ver todos los registros(SELECT * from Table1),
como puedo mandar llamar una funcion escrita en PHP desde JS ???, la cual me genere la tabla con los datos de la consulta, en una posicion especifica de la pagina(ej. al centro y abajo del menu).

He intentado llamar un script PHP desde JS(con Location.url="scriptCons.php?tipo=1") donde tipo ya verifique que si sea pasada, el script lo dividi en 2 funciones, una que genera la consulta, y la seguna que imprime los resultados, en la posicion que deseo imprimir el resultado pongo:
<? include("scriptCons.php"); viewInfo(); ?>
y no funciona, lo mismo lo intente con require.. aqui yo creo que no sirve la funcion ya que php se ejecuta del lado del servidor, pero entonces como paso los resultados de regrso a la pag????????

HE TRATADO DE NO USAR FORMS ya que no se como regresar el resultado de prosesar la info, asi como en <form action="scriptCons.php?tipo=1"> no me pasa la variable......

:confused: Si alguien me puede dar alguna sugerencia le estare muy agradecido ya que no se que mas puedo intentar.....:confused:

DE ANTEMANO MUCHAS GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!
Rafafa:D

dec
06-09-2006, 21:34:40
Hola,

Llamar a una función escrita en PHP desde JavaScript no es posible, porque, como has dicho, uno trabaja en el Servidor y otro en el cliente y no vale ese tipo de comunicación. Empero, sí que puedes enviar variables y valores a través de enlaces, formularios, etc., que sean procesados por el Script PHP (la página correspondiente) como sea menester.

Por otro lado, aunque lo siguiente funcionaría, según creo, porque estarías enviando variables vía "HTTP GET" a la página "pagina.php"...


<form action="pagina.php?variable=valor">


Lo cierto es que lo normal suele ser incluir campos en el formulario, cuyos atributos dieran el nombre y el valor que toque a las variables necesarias. Un ejemplo sencillo:


<form action="pagina.php" method="get">
<input type="hidden" name="variable0" value="valor0" />
<input type="text" name="variable1" value="valor1" />
<input type="submit" value="Enviar" />
</form>


He añadido un campo oculto por si no sabías que es posible enviar de ese modo variables y valores sin que el usuario "se entere", puesto que dichos campos "hidden" no aparecerán en la página. Empero, no están ahí para que el usuario no se entere de lo que se hace, sino que son útiles en ciertas situaciones, claro está.

El caso es que al enviar ese formulario en "pagina.php" contarás con el Array super global "$_GET", en este caso (porque el método del formulario era "GET", bien podría ser "POST", y así el Array a usar sería "$_POST"), de manera que podrías acceder a los variables y valores de este modo:


// pagina.php

if(isset($_GET['variable1'])
$variable1 = $_GET['variable1'];


En realidad es bastante sencillo el asunto, así que no creo que te cueste mucho en cuanto te pongas a hacer alguna que otra prueba. Pero, como me parece que me estoy extendiendo demasiado, lo dejo aquí, y, si tienes algo que comentar, pues eso, por aquí estaremos. :)

Rafafa
07-09-2006, 02:54:43
Hola!!! muchas gracias por tu ayuda , ya puse en practica y tenias toda la razon!!! este proseso no es nada dificil.....
Ahora mi problema esta en el regreso de los datos a la pagina principal donde los quiero desplegar, tengo un script php(querysSocio.php) que en general verifica una variable que se pasa a la pagina por medio de JS(...parent.location="querysSocio.php?all=1"...) esto lo hago pork cuando de click en el link (VER SOCIOS) tengo que despleguar todos los registrados.


if(isset($all)){
$reg = viewAll();
header("Refresh: 1; URL = consulta_socio.php?regreso=1");
}
//funcion para hacer la consulta
function viewAll(){
//en esta clase me conecto a mi BD
require_once('clases/conexion_bd.php');
$obj_bd = new BD;
$conexion = $obj_bd->conecta();

// EMPIEZA TODO EL PROSESO

$sql = "SELECT CNOSOCIO,CAPELLID FROM TSOCIOS ";

$res = mysql_query($sql);

$total = mysql_num_rows($res);
if($total!=0){
$array[$total];
$i=0;

while ($row = mysql_fetch_assoc($res)) {
$array[$i] = $row['CNOMUSUA'] . " " . $row['CAPELLID'];
$i++;
}

mysql_free_result($res);
mysql_close($conexion);
}

else{ $array="no hay registros";}

return $array;

}
-
//ESTA FUNCION ESTA PENSADA YA QUE DESDE LA PAG PRINCIPAL LA
//MANDO LLAMAR EN LA SECCION DONDE QUIERO DESPLEgaR LA CONSULTA
//le puse global ya que $reg no se encuentra definida dentro de las funciones

function viewINFO(){
global $reg;
return $reg;
}


en la pag principal:


<?
if($regreso ==1){
$regreso=0;
require_once('querysSocio.php');
$info=viewINFO();
if(!isset($info)) echo "info recibida";
echo "<table> <tr> <td bgcolor= \"#0000FF\" colspan=\"2\" > " .
"<center>:: N O M B R E D E S O C I O :: </center> </td> </tr>";

for($i=0;$i<count($info);$i++){
echo "<tr><td>".$info[$i]."</tr></td>";
}

echo "</table>";
}
?>


MI PROBLEMA es que no se si se pueden regresar los arrays y sus contenidos por medio de return , y si se puede regresar que estoy haciendo mal ya que la variable $info no contiene datos algunos.....

Espero no causar molestias y de antemano muchisimas gracias.:(
Rafafa.

Rafafa
09-09-2006, 03:46:50
HOLA a todos , espero esten muy bien!!! :) he estado haciendo pruebas para resolver mi problema, ya verifique que los arrays se regrsen por return y se impriman, la prueba que hice es:
Archivo 1:(prueba1.php)

//Lo unico que busco es que se ejecute el script de prueba2.php
<? include("prueba2.php");?>
<form name="hola" action="prueba2.php">
<input type="submit" name="boton"/>
</form>
<?
if($b==1){
$hola= regresa();
if(isset($hola))echo "<br>rafael chavez <br>";
for($i=0;$i<=count($hola);$i++)
echo $hola[$i];
}
else
echo "No hay datos";
?>

Archivo 2:(prueba2.php)
<?
$reg[0]="RAFAEL";
$reg[1]="CHAVEZ SOLIS ";
$reg[2]=" ESTO SON ARRAYS !!!!!!";
header("Location:p.php?b=1");

function regresa(){
global $reg;
return $reg;
}

?>


:) Al parecer todo va bien si imprime el array pero al ejecutarlo manda un error asi:
Warning: Cannot modify header information - headers already sent by ( output started at prueba2.php: 9(supongo que es donde esta el include) )in prueba1.php line 6(donde esta header)

:confused: Que es lo que pasa con el header?? existe algun otra manera de al mandar llamar un script con un form(POST) regresar en un punto dado al script anterior para despues mandar llamar la funcion???:confused:

De Antemano Gracias por su ayuda !!!:D

dec
09-09-2006, 10:06:50
Hola,

Personalmente, no termino de comprender bien qué es lo que pretendes hacer yendo de una página a la otra y queriendo regresar otra vez a la anterior... se me escapa lo que quieres hacer, y así es complicado ayudarte. Pero, no digo que tengas tú nada que ver: digo que yo, personalmente, no entiendo lo que pretendes.

El error a que haces referencia se ha tratado en más de una ocasión en estos Foros y es un error muy común cuando se utiliza la función "header" de PHP. Echa un vistazo a este Hilo (http://www.clubdelphi.com/foros/showthread.php?t=31049), que he "recuperado" tras esta búsqueda (http://www.clubdelphi.com/foros/search.php?searchid=519364) en los Foros. A ver si te sirve de algo, por lo menos, para solucionar el problema "Cannot modify header information..." etc. ;)

Rafafa
13-09-2006, 03:47:31
Hola a todos, muchas gracias por su ayuda y en especial a dec, el problema esque en una pagina tenia links y pequeños forms para realizar consultas (osea el link1 mostraba el form para la consulta por nombre y apellido, el link2 mostraba un form para la consulta por rfc .....) bueno para cerrar el tema esta fue mi solucion con 3 archivos php.

el primer archivo contenia una clase con las funciones de consulta, recuperacion etc... de las diferentes consultas que nesecitaba hacer.

el segundo archivo evaluava de que form venia y usaba header para redireccionar a la pag principal(osea solo fue como un archivo en el que me apoyo para redireccionar con opciones diferentes)

el tercer archivo, el archivo prncipal evaluava si llegaba una variable que indicaba que la pag habia sido actualizada y despues creaba un objeto de la clase (del primer archivo) , asi podia disponer tanto de los datos del form y manipularlos en la misma pagina, lo siguiente fue la llamada a las funciones y VUALA!!!! las consultas aparecian dentro de tablas en este archivo junto con links para ver los detalles.

Gracias a todos por su ayuda!!!!!!!!!
Saludos
:cool: RAFAFA