Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Capturar valores entre dos archivos php

Estas en el tema de Capturar valores entre dos archivos php en el foro de PHP en Foros del Web. Saludos, Como puedo acceder desde un archivo php a una variable que esta en otro archivo php en el que le he pasado un valor ...
  #1 (permalink)  
Antiguo 04/12/2014, 10:04
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 1 mes
Puntos: 0
Capturar valores entre dos archivos php

Saludos,
Como puedo acceder desde un archivo php a una variable que esta en otro archivo php en el que le he pasado un valor por ajax para una consulta donde muestra unos valores que quiero capturar en el archivo principal, utilizo el include_once.

Desde una pagina web en php paso por ajax el codigo de un producto, en el segundo archivo realiza la consulta y muestra la informacion. En la pagina principal tengo incluido este archivo 2 con un include_once en donde puedo ver los datos de la consulta, el problema es que quiero capturar por ejemplo la cantidad de productos pero no logro capturarlo.

Que podria hacer yo alli ?
  #2 (permalink)  
Antiguo 04/12/2014, 11:56
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Capturar valores entre dos archivos php

saludos andres.
Por lo que pude entender estas haciendo una especie de planilla para presupuesto algo asi?

yo hice algo asi una vez pero de la siguiente manera

en una pagina principal tengo los input de los campos que quiero ingresar por ejemplo
nombre del producto
codigo
cantidad
precio

y abajo un boton que me llama un iframe donde hago una consulta por nombre del producto y una vez encontrado al hacer click el me regresa los valores a la pagina que tengo abierta en el fondo

Código PHP:
<input type="button" onClick="window.open('pages/presupuesto/buscar.php','myframe','width=500,height=600,resizable=yes,location=1,scrollbars=1')" value="Buscar Producto">

ó

si quieres enviar un valor 

<input type="button" onClick="window.open('pages/presupuesto/buscar.php?variable='+nextinput+'','myframe','width=600,height=600,resizable=yes,location=1,scrollbars=1')" value="Buscar Producto"


archivo buscar.php

Código PHP:
<?php include("../../includes/admin/conf.php"); ?> 
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>SITE</title>

</head>
<!--------------      Buscador    --------------------->

<style>
        
            #results {
                color: #000;
                background: #fff;
                width: 330px;
                max-height: 150px;
                padding-left: 4px;
                border: 1px solid #000;
                overflow-y: scroll;
                overflow-x: hidden;
            }
            a { color: #000; display: block; }
            a:hover { background: #00ADEF; color: #000; }
        </style>

<!--------------      fin de Buscador    --------------------->

<!--parametro = window.open("emergente.php","","width=400,height=300");-->


<body>



 <!------------- BUSCADOR ------------------>
 


   <form id="searchform" method="post"  onsubmit="return false;">
       <?php
 
// Se obtiene el valor pasado por el parametro 'par'
        
$var $_GET['variable'];

        
$d = (int)$var;
    
    echo
"<input type='hidden' name='campo1' id='campo1' value='$d'>";
?>

            <input type="textbox" id="searchbox" onkeyup="sendRequest()" name="name" autocomplete="off" /> <font color="#000"> Barra de Búsqueda</font>
        </form>
        
        <div id="show_results"></div>


    <!------------- OJO ------------------>
        <script type="text/javascript" src="prototype.js"></script>
        <!------------- OJO ------------------>


        <script>
            function sendRequest() {
            var campo1 = eval(document.getElementById('campo1').value);
                new Ajax.Updater('show_results', 'search.php?variable='+campo1+'', { method: 'post', parameters: $('searchform').serialize() });
            }  
        </script>
  


 <!------------- FIN BUSCADOR ------------------>





</body>
</html>



en el siguiente muestro la lista de la consulta y selecciono haciendo click en el producto que quiero


seach.php
Código PHP:
    <?    
    $name 
$_POST['name'];
    include(
"../../includes/admin/conf.php"); 
        
        if(empty(
$name)) {
            echo 
"";
        } else {
            
//If there is text in the search field, this code is executed every time the input changes.
            
echo "<div id='results'>"//this div is used to contain the results. Mostly used for styling.
            
            //This query searches the name field for whatever the input is.
            
            
$sql "SELECT idProducto, strNombre_es FROM tblproducto WHERE strNombre_es LIKE '%$name%'";

            
$result mysql_query($sql);
            while(
$row mysql_fetch_assoc($result)) {
                
$id $row['idProducto'];
                
$name htmlentities($row['strNombre_es'], ENT_COMPAT'iso-8859-1');
                
                
$var1 $_GET['variable'];
                  
$d1 = (int)$var1;
                
                echo 
"<a href='emergente.php?recordID=$id&numeproducto=$d1' target='_self'>$name</a> ";
            
            }
            
            echo 
"</div><!--results-->";
        }
    
?>

luego en el siguiente muestro el resultado de los datos de la consulta y al hacer click envio los valores a la pagina principal

en el caso mio los input de la pagina principal los llamo con una funcion en javascript y los agrego cuantos quiera
por eso es que dentro de la funcion le regreso el valor de esta manera

opener.document.getElementById('idproduc'+valor+'' ).value=num;

ahora si solo necesitas captar en un solo input los colocas asi para regresar el valor

opener.document.form2.idproduc1.value = num;



emergente.php

Código PHP:

    
    <script language="javascript">

function envia(num, nome, pre, cod, med){

var valor=eval(document.getElementById('input1').value);


//opener.document.form2.idproduc1.value = num;
//opener.document.form2.nombreproduc1.value = nome;
//opener.document.form2.precioproduc1.value = pre;
//opener.document.form2.codigoproduc1.value = cod;


opener.document.getElementById('idproduc'+valor+'').value=num;
opener.document.getElementById('nombreproduc'+valor+'').value=nome;
opener.document.getElementById('nombreproducinvisible'+valor+'').value=nome;
opener.document.getElementById('precioproduc'+valor+'').value=pre;
opener.document.getElementById('precioproducinvisible'+valor+'').value=pre;
opener.document.getElementById('codigoproduc'+valor+'').value=cod;
opener.document.getElementById('codigoproducinvisible'+valor+'').value=cod;
opener.document.getElementById('medidainvisible'+valor+'').value=med;



close();
}
</script>


<?php

if (isset($_GET["recordID"])) {
  
$var $_GET["recordID"];
}

        
$d = (int)$var;
        echo 
$d;
        
        



if (isset(
$_GET["numeproducto"])) {
  
$Productonumero $_GET["numeproducto"];
}

$f = (int)$Productonumero;
        echo
"</br>";    
        
$res = (int)$f;
        echo 
$res;
        echo
"<input type='hidden' name='input1' id='input1' value='$res'>";



        
include(
"../../includes/admin/conf.php");




$sql="SELECT * FROM tblproducto  WHERE tblproducto.idProducto = '".$d."'";


$result mysql_query($sql);
$row mysql_fetch_array($result);


?>

<form enctype="multipart/form-data" name="form2"><table>
<a href="#" onclick="envia(<?php print $row["idProducto"]; ?>, '<?php print $row["strNombre_es"]; ?>' ,' <?php print number_format($row['precio'],2,'.','');  ?> ' , '<?php print $row["strSEO"]; ?>' , '<?php print $row["strMedidas"]; ?>');">
<?php print $row["strNombre_es"]; ?>
</a><br>
</table></form>

necesitas este archivo tambien en la misma carpeta donde esta todos los anteriores

Código HTML:
https://dl.dropboxusercontent.com/u/32051682/prototype.js


Te repito no se si es lo que estas buscando pero una idea, o para el que lo necesite

Última edición por julslash; 04/12/2014 a las 12:03
  #3 (permalink)  
Antiguo 04/12/2014, 13:21
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Capturar valores entre dos archivos php

Si el valor lo pasas mediante una petición asíncrona (Ajax), lo puedes recibir como lo harías de la forma tradicional, es decir, mediante los métodos GET o POST, según el que hayas especificado. Luego de procesar el dato recibido, muestras el resultado el cual será la respuesta a la petición en el primer archivo y puedes mostrarla en donde desees. El include_once acá no tiene nada que hacer.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 04/12/2014, 17:59
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Capturar valores entre dos archivos php

Este primer archivo tiene un campo de texto y un boton el cual escribe el codigo de un producto y le da click en boton donde por ajax envia el codigo a otro archivo que esta abajo del codigo.
Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <link rel="stylesheet" type="text/css" href="css/css_bodega.css"/>
  4.     <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  5.     <script src="javascript/pasa_cod_bodega.js"></script>
  6. <?php
  7.     require('../Controlador/Actualiza.php');
  8. ?>
  9.     </head>
  10. <body>
  11.     <div id="div_producto">
  12.         <?php
  13.             include_once('valida_bodega.php');
  14.         ?>
  15.     </div>
  16.     <div id="div_opcion">
  17.         <ul>
  18.             <li>
  19.                 <p> Codigo</p>
  20.                 <input type="number" id = "txt_cod" name ="txt_cod" size="10"></input>
  21.                 <input type="submit" id="btn_submit" name="btn_submit" onClick="pasar_codigo_bodega()" value="validar"> </input>
  22.             </li>
  23.         </ul>
  24.     </div>
  25. </body>
  26. </html>


Aqui recibira todo el codigo del producto por medio de get y en consulta que es una clase donde estan todas las consultas a tablas verifica que exista el producto y si existe muestra la imagen de producto, nombre y cantidad. A cantidad es lo que requiero capturar pues se trata de un proceso de abastecimiento y necesito sumarlo con la cantidad que el usuario colocara en el formulario que se activa mas abajo.
Código PHP:
Ver original
  1. <?php
  2. require('../Controlador/Actualiza.php');
  3. require('../Controlador/Consultas.php');
  4. if(isset($_GET['valor'])){
  5.     $consulta = new Consultas();
  6.     $codigo = $_GET['valor'];
  7.     $cursor_bodega = $consulta->consulta_almacen($codigo);
  8.     if(!isset($cursor_bodega["codigo"])){
  9.         echo "error, no existe el producto";
  10.     }else{
  11.       $codigo = $cursor_bodega["codigo"];
  12.       $cantidad = $cursor_bodega["cantidad"];
  13.       $codigo_producto = $cursor_bodega["codigo_pro"];
  14.     $cursor_producto = consulta>consulta_visualizar_productos_por_codigo($codigo_producto);  
  15.      $nombre = $cursor_producto["nombre"];
  16.      ?>
  17.             <table>
  18.                 <tr>
  19.                     <th>
  20.                     <?php
  21.                     echo '<IMG SRC="http://www.forosdelweb.com/f18/Vista/Image'.$cursor_producto["imagen_dir"].$cursor_producto["imagen_nomb"].'" WIDTH=180 HEIGHT=180 BORDER=0 ALT="producto">';?>
  22.                     </th>
  23.                         <td>
  24.                             <label><b> Nombre de producto : </b></label> <br>
  25.                             <center><label> <? echo $nombre ?></label></center>
  26.                         </td>
  27.                         <td>
  28.                             <label><b>Cantidad en existencia : </b></label>  <br>
  29.                             <label> <? echo $cantidad ?></label>
  30.                         </td>
  31.                 </tr>
  32.             </table>
  33.            
  34.             <?php
  35.             $consulta->cerrar_conexion(); ?>
  36.             <form name ="frm_abastece" id="frm_abastece" action="" method="POST">
  37.                 <ul>
  38.                     <li>
  39.                         <label><b> Cantidad para abastecer </b></label><br>
  40.                         <input type="number" id = "txt_cant" name ="txt_cant" size="3"></input>
  41.                         <input type="submit" id = "btn_enviar" name = "btn_enviar" value="Abastecer" ></input>
  42.                     </li>
  43.                 </ul>
  44.             </form>
  45. <?php
  46.         }
  47.     }
  48.     if(isset($_POST['btn_enviar'])){ //
  49.             if(isset($_POST['txt_cant'])){
  50.                 $cant = $cantidad + $_POST['txt_cant'];
  51.                     echo "cantidad : ".$cant.'<br>';
  52.                     echo "codigo : ".$codigo;
  53.                     $actualiza = new Actualizar();
  54.                     echo "suma :".$cant;
  55.                     $sql = 'Update Bodega
  56.                             SET Bog_canti ='.$cant.'
  57.                             WHERE Bog_cod ='.$codigo;
  58.                     $update = $actualiza->update_query($sql);
  59.                     if(array_key_exists("mensaje", $update)){
  60.                         echo $update["mensaje"];
  61.                     }elseif(array_key_exists("error", $update)){
  62.                         echo $update["error"];
  63.                     }else{ echo "algo esta pasando";}
  64.             }else{
  65.                 echo "por favor digite la cantidad de productos a registrar";
  66.             }
  67.                 $actualiza->cerrar_conexion(); 
  68.     }
  69.  
  70.  
  71. ?>

El problema se origina cuando se activa un campo donde colocara la cantidad a agregar y un boton de formulario para hacer el proceso de suma y actualizar el registro donde desconoce la variable $cantidad y $codigo. Alli esta el problema que tengo.

Gracias a todos, el problema no esta en el ajax pues funciona bien y tampoco en las consultas de base de datos porque tambien estan bien.
  #5 (permalink)  
Antiguo 04/12/2014, 18:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Capturar valores entre dos archivos php

¿Y no puedes usar un campo <input> adicional para pasar el valor a través del formulario que hace el POST o cual es la dificultad?

Código PHP:
Ver original
  1. <input type="hidden" name="cantidad" value="<?php echo $cantidad; ?>">

Que claro, dado que el formulario es de tipo post debes usar $_POST['cantidad'] al recibir el formulario.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 04/12/2014, 20:33
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Capturar valores entre dos archivos php

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y no puedes usar un campo <input> adicional para pasar el valor a través del formulario que hace el POST o cual es la dificultad?

Código PHP:
Ver original
  1. <input type="hidden" name="cantidad" value="<?php echo $cantidad; ?>">

Que claro, dado que el formulario es de tipo post debes usar $_POST['cantidad'] al recibir el formulario.
Hermanito.... Le agradezco, personalmente no sabia ese type "hidden" eso me soluciono el inconveniente.

Dios te pague hermano...

Etiquetas: ajax
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 06:41.