elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7
31  Programación / Desarrollo Web / Jquery Duda con Cargar un Select en: 7 Noviembre 2014, 15:02 pm
- Buenas yo denuevo por aqui espero puedan ayudarme con lo siguiente, la verdad no se bien como expresarme así que les muestro lo que intento hacer.

- Tengo este formulario:

Código
  1. <?php
  2. require_once "php/Clases/conexion/conexion.pro.php";
  3. require_once "php/Clases/crud/crud.php";
  4.  
  5. $model = new Crud();
  6. $model->Read();
  7. $filas = $model->rows;
  8. $total = count($filas);
  9. ?>
  10. <meta charset="UTF-8">
  11. <link rel="stylesheet" type="text/css" href="css/style.css">
  12. <script src="script/jquery-2.1.1.min.js"></script>
  13. <script src="script/ajax.js"></script>
  14. </head>
  15. <body>
  16. <section class="criterio">
  17. <div id="crit-form">
  18. <h3>Criterio de Busquedas</h3>
  19. <form class="crit-form" method="post" name="search_form" id="search_form">
  20. <small> El Total de Filas en Base de Datos: <?php echo $total ?> </small>
  21.  
  22. <div id="resultados"></div>
  23.  
  24. <small>Por Ficha</small>
  25. <input type="text" name="cod.ficha" id="search_fi" class="parse" placeholder="introduzca Codigo Ficha Ej: Ch001">
  26. <small>Por Cedula</small>
  27. <input type="text" name="ci" id="search_ci" class="parse" placeholder="Cedula Use Puntos Ej: 49.781.190">
  28. <small>Por Nombre</small>
  29. <input type="text" id="search" class="parse" placeholder="introduzca un Nombre Ej: Antonio">
  30. <small>Por Estatus</small>
  31. <option value="A" selected>Activo</option>
  32. <option value="I">Inactivo</option>
  33. <option value="PL">Por Liquidar</option>
  34. <option value="L">Liquidado</option>
  35. </select>
  36. <input type="submit" id="btn-sub" class="parse" Value="Procesar">
  37. </form>
  38. </div>
  39. </section>
  40. <section>
  41. <p>
  42. <div id="result"></div>
  43. </p>
  44. </section>
  45. </body>
  46. </html>
  47.  

- En <div id="resultados"></div> se van cargando una serie de resultados dependiendo de lo que escriba en los inputs esto ya lo pude hacer, anexo a eso quise realizar una funcion que al darle click ha X resultado se generara otra busqueda y a su vez se mostraran resultados mas detallados hasta ese punto no he llegado al 100% sin embargo hice mis pruebas de la siguiente manera.

- Esta es mi funcion para generar la primera busqueda.

Código
  1. $(document).ready(function() {
  2. $('#search').focus();
  3. $('#search_form').submit(function(e){
  4. e.preventDefault();
  5. })
  6.  
  7. $('#search_form .parse').on('change',function(){
  8.  
  9. var envio = $(this).val();
  10.  
  11. $('#resultados').html('<h2><img src="img/loadin.gif" width="20" /> Cargando...</h2>');
  12. $.ajax({
  13. type: 'POST',
  14. url: 'php/search.php',
  15. data: ('search='+envio),
  16. success: function(resp){
  17. if (resp!="") {
  18. $('#resultados').html(resp);
  19. }
  20. }
  21. })
  22. })
  23. })
  24.  

- Esa me funciona de 10 y tengo esta otra que está en el mismo documento es la que se supone que me debe mostrar la info que yo quiero al darle click al select que esta en Search.php y que se carga en <div id="resultados"></div>

Código
  1. $(document).ready(function() {
  2. $('#display-lps').on('click',function(){
  3. $.ajax({
  4. type: 'POST',
  5. url: 'script/process.php',
  6. data: $('#search_form').serialize(),
  7. success: function(data){
  8. if (data!="") {
  9. $('#result').html(data);
  10. }
  11. }
  12. });
  13. });
  14. });
  15.  

- Esta funcion no se ejecuta y realizando mas pruebas me percate que si hago esto, la funcion si funciona.

Código
  1. <?php
  2. require_once "php/Clases/conexion/conexion.pro.php";
  3. require_once "php/Clases/crud/crud.php";
  4.  
  5. $model = new Crud();
  6. $model->Read();
  7. $filas = $model->rows;
  8. $total = count($filas);
  9. ?>
  10. <meta charset="UTF-8">
  11. <link rel="stylesheet" type="text/css" href="css/style.css">
  12. <script src="script/jquery-2.1.1.min.js"></script>
  13. <script src="script/ajax.js"></script>
  14. </head>
  15. <body>
  16. <section class="criterio">
  17. <div id="crit-form">
  18. <h3>Criterio de Busquedas</h3>
  19. <form class="crit-form" method="post" name="search_form" id="search_form">
  20. <small> El Total de Filas en Base de Datos: <?php echo $total ?> </small>
  21.  
  22. <select size="10" name="nombre" id="display-lps">
  23. <?php
  24. foreach ($filas as $fila)
  25. {
  26. ?> <option id="resultados" >
  27. <?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos'];
  28. ?> </option>
  29. <?php
  30. }
  31. ?>
  32. </select>
  33.  
  34. <small>Por Ficha</small>
  35. <input type="text" name="cod.ficha" id="search_fi" class="parse" placeholder="introduzca Codigo Ficha Ej: Ch001">
  36. <small>Por Cedula</small>
  37. <input type="text" name="ci" id="search_ci" class="parse" placeholder="Cedula Use Puntos Ej: 49.781.190">
  38. <small>Por Nombre</small>
  39. <input type="text" id="search" class="parse" placeholder="introduzca un Nombre Ej: Antonio">
  40. <small>Por Estatus</small>
  41. <select >
  42. <option value="A" selected>Activo</option>
  43. <option value="I">Inactivo</option>
  44. <option value="PL">Por Liquidar</option>
  45. <option value="L">Liquidado</option>
  46. </select>
  47. <input type="submit" id="btn-sub" class="parse" Value="Procesar">
  48. </form>
  49. </div>
  50. </section>
  51. <section>
  52. <p>
  53. <div id="result"></div>
  54. </p>
  55. </section>
  56. </body>
  57. </html>
  58.  

- Lo que hice fue eliminar <div id="resultados"></div> y colocar ese select con el Foreach que son un fragmento de lo que esta en Search.php y es lo que Ajax mostraba en el <div id="resultados"></div> que elimine.


- Yo me imagino que la funcion no se cumple porque el #display-lps que esta en el select que trae Ajax aun no se construido en el Html, entonces cual seria la solucion, yo inventando hice esto: En el Search.php inclui <script src="script/ajax.js"></script> justo en el momento donde Ajax trae el fragmento del Select y eso me funciono la funcion se ejecuta sin problema, sin embargo quiero saber si hay una forma mas eficiente de hacerlo?

- Claro yo puedo crear otro script y sacar la funcion click y incluirla sola en search.php para no repetir la funcion ready, pero hay una manera en Jquery mas eficiente?

     -Saludos
32  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 6 Noviembre 2014, 14:23 pm
- Buenas T. Collins, MinusFour realmente muchas gracias por su ayuda y perseverancia me han ayudado como no tienen idea, al parecer todo va de 10.

- Les comento que intente con la segunda Opcion, osea pasar por post el cod_empresa

Código
  1. header("Location: /ready.php?cod=".$cod_empresa);
  2.  

- Y luego en mis metodos del crud poner

Código
  1. $conexion = $model->conectar($_POST['cod']);
  2.  

- Tal cual como me sugirio T.Collins y esto no funciono si vi que por Url se pasaba el nombre de la bd cprrectamente y hasta intente pasar ese nombre por un input hidden desde el segundo formulario a Search.php a ver si eso era el problema y nada de nada.

- Así que con pocas esperanzas jajaja pase a intentar con session_start() sugerido por T.Collins y realmente este metodo me funciono de a 10.

Código
  1. <?php
  2.    require_once 'conexion.table.php';
  3.    session_start();
  4.  
  5.        $cod_empresa = (isset($_POST['cod_empresa'])) ? $_POST['cod_empresa'] : "";
  6. $Conexion = new Conexion();
  7. $Conexion->conectar($cod_empresa);
  8. $_SESSION['cod_empresa'] = $cod_empresa;
  9.  
  10.    if(isset($_POST['cod_empresa']))
  11.    {
  12.        header("Location:ready.php");
  13.    }
  14. ?>
  15.  

- No use el session_star en mi clase conexion porque no le vi sentido hacerlo, pero en la clase Crud si lo use tal cual como sugirio T.Collins

Código
  1. <?php
  2. class Crud
  3. {
  4. public $insertInto;
  5. public $insertColumns;
  6. public $insertValues;
  7. public $mensaje;
  8. public $rows;
  9.  
  10. public function Read()
  11. {
  12. $model = new Conexion();
  13. $conexion = $model->conectar($_SESSION['cod_empresa']);
  14. $sql = "SELECT * FROM snemple";
  15. $consulta = $conexion->prepare($sql);
  16. $consulta->execute();
  17.  
  18. while ($filas = $consulta->fetch())
  19. {
  20. $this->rows[] = $filas;
  21. }
  22. }
  23.  
  24. public function Searchi()
  25. {
  26. $model = new Conexion();
  27. $conexion = $model->conectar($_SESSION['cod_empresa']);
  28.  
  29. $search = $_POST['search'];
  30.  
  31. $sql = "SELECT nombres, apellidos, ci, cod_emp FROM snemple WHERE nombres LIKE '%".$search."%' or ci LIKE '%".$search."%' or cod_emp LIKE '%".$search."%'";
  32. $consulta = $conexion->prepare($sql);
  33. $consulta->execute();
  34.  
  35. while ($filas = $consulta->fetch())
  36. {
  37. $this->rows[] = $filas;
  38. }
  39. }
  40. }
  41. ?>
  42.  
- Luego de esto probe denuevo y listo no lo podia creer cerre, abrir, probe, reprobe y todo fino muchas gracias de verdad, aunque me quedaron ciertas dudas sobre este tema yo creo que podriamos dejarlo como solucionado, espero contar denuevo con su ayuda por si me llegara a presentar otro problema dado que aun tengo mas idea para mi sistema...

    -Saludos.
33  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 5 Noviembre 2014, 01:48 am
- Y una solucion para eso no la hay?...

- Hmmm esto lo digo en mi ignorancia, no hay forma de convertir el $_POST['cod_empresa'] en una variable global para que pueda ser leida facilmente por cualquier .php que se cree? algo asi parecido al session_start?.

- Por otra parte no hay forma de hacer lo que busco de otra manera no tan complicada?.
34  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 4 Noviembre 2014, 21:30 pm
- Ok MinusFour hay voy porque también he agregado unas cosas, pero no esta muy distinto a lo que ya he planteado.

1- tengo este formulario.

Código
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.    <title>Control de Equipos</title>
  4.    <meta charset="utf-8">
  5.    <link rel="stylesheet" type="text/css" href="css/style.css">
  6. </head>
  7. <div id="login-form">    
  8.      <h3>Bases de Datos</h3>
  9.        <fieldset>
  10.            <form action="board_table.php" method="post">
  11.                <center>
  12.                    <select name="cod_empresa">
  13.                        <option Value="HUYAP_N">Proyecto H</option>
  14.                        <option Value="Zuat">Proyecto Z</option>
  15.                        <option Value="Ricl">Proyecto C</option>
  16.                    </select>
  17.                </center>    
  18.  
  19.                <input type="hidden" name="session">
  20.                <input id="sub" type="submit" value="Iniciar Conexión">
  21.            </form>
  22.        </fieldset>
  23. </div>
  24. </body>
  25. </html>
  26.  

2- Ese formulario se viene aca.

Código
  1. <?php
  2.    require_once 'conexion.table.php';
  3.    require_once 'crud.php';
  4.  
  5.        $cod_empresa = (isset($_POST['cod_empresa'])) ? $_POST['cod_empresa'] : "";
  6. $Conexion = new Conexion();
  7. $Conexion->conectar($cod_empresa);
  8.  
  9.    if(isset($_POST['session']))
  10.    {
  11.        header('location:ready.php');
  12.    }
  13. ?>
  14.  

2.1 - Donde la clase conexion es la siguiente.

Código
  1. <?php
  2. class Conexion
  3. {
  4.    public $ndatabase ="";
  5.  
  6.    public function conectar($cod_empresa="")
  7.       {
  8.            $this->ndatabase = $cod_empresa;
  9.            $server = 'sbvbieloven';
  10.            $database = $this->ndatabase;
  11.            $username = 'profit';
  12.            $password = 'profit';
  13.            return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  14.     }
  15. }
  16. ?>
  17.  

3- Seguidamente por la condicion del Punto 2 me redirecciona a esta pag.

Código
  1. ]<?php
  2. require_once "conexion.table.php";
  3. require_once "crud.php";
  4.  
  5. $model = new Crud;
  6. $model->Read();
  7. $filas = $model->rows;
  8. $total = count($filas);
  9. ?>
  10. <meta charset="UTF-8">
  11. <link rel="stylesheet" type="text/css" href="css/style.css">
  12. <script src="script/jquery-2.1.1.min.js"></script>
  13. <script src="script/ajax.js"></script>
  14. </head>
  15. <body>
  16. <section class="criterio">
  17. <div id="crit-form">
  18. <h3>Criterio de Busquedas</h3>
  19. <form class="crit-form" name="search_form" id="search_form">
  20. <small> El Total de Filas en Base de Datos: <?php echo $total ?> </small>
  21. <select size="10">
  22. <option id="resultados"></option>
  23. </select>
  24. <small>Por Ficha</small>
  25. <input type="text" name="search" id="search_fi" placeholder="introduzca Codigo Ficha Ej: Ch001">
  26. <small>Por Cedula</small>
  27. <input type="text" name="search" id="search_ci" placeholder="Cedula Use Puntos Ej: 49.781.190">
  28. <small>Por Nombre</small>
  29. <input type="text" name="search" id="search" placeholder="introduzca un Nombre Ej: Antonio">
  30. <small>Por Estatus</small>
  31. <select >
  32. <option>Seleccione Estatus</option>
  33. <option selected>Activo</option>
  34. <option>Inactivo</option>
  35. <option>Por Liquidar</option>
  36. <option>Liquidado</option>
  37. </select>
  38. <input type="submit" Value="Procesar">
  39. </form>
  40. </div>
  41. </section>
  42. </body>
  43. </html>

4- Donde mi clase Crud es la siguiente.

Código
  1. <?php
  2. class Crud
  3. {
  4. public $insertInto;
  5. public $insertColumns;
  6. public $insertValues;
  7. public $mensaje;
  8. public $rows;
  9.  
  10. public function Create()
  11. {
  12. $model = new Conexion;
  13. $conexion = $model->conectar();
  14. $insertColumns = $this->insertColumns;
  15. $insertValues = $this->$insertValues;
  16. $sql = "INSERT INTO $insertInto ($insertColumns) VALUES ($insertValues)";
  17. $consulta = $conexion->prepare($sql);
  18. if (!$consulta)
  19. {
  20. $this->mensaje = "Error...";
  21. }
  22. else
  23. {
  24. $consulta->execute();
  25. $this->mensaje = "Registro Creado";
  26. }
  27. }
  28.  
  29. public function Read()
  30. {
  31. $model = new Conexion();
  32. $conexion = $model->conectar();
  33. $sql = "SELECT * FROM snemple";
  34. $consulta = $conexion->prepare($sql);
  35. $consulta->execute();
  36.  
  37. while ($filas = $consulta->fetch())
  38. {
  39. $this->rows[] = $filas;
  40. }
  41. }
  42.    public function Searchi()
  43. {
  44. $model = new Conexion();
  45. $conexion = $model->conectar($_POST['cod_empresa']);
  46.  
  47. $search = $_POST['search'];
  48.  
  49. $sql = "SELECT nombres, apellidos, ci, cod_emp FROM snemple WHERE nombres LIKE '%".$search."%' or ci LIKE '%".$search."%' or cod_emp LIKE '%".$search."%'";
  50. $consulta = $conexion->prepare($sql);
  51. $consulta->execute();
  52.  
  53. while ($filas = $consulta->fetch())
  54. {
  55. $this->rows[] = $filas;
  56. }
  57. }
  58. }
  59. ?>
  60.  

5- Ahora he añadido algunas cosas como Ajax de la siguiente forma. Ya inclui las etiquetas jquery y mi otro script ajax que es donde esta mi funcion de esta forma.

Código
  1. $(function(){
  2. $('#search').focus();
  3. $('#search_form').submit(function(e){
  4. e.preventDefault();
  5. })
  6.  
  7. $('#search_form input[type=text]').keyup(function(){
  8.  
  9. var envio = $(this).val();
  10.  
  11. $('#resultados').html('<h2><img src="img/loadin.gif" width="20" /> Cargando...</h2>');
  12. $.ajax({
  13. type: 'POST',
  14. url: 'search.php',
  15. data: ('search='+envio),
  16. success: function(resp){
  17. if (resp!="") {
  18. $('#resultados').html(resp);
  19. }
  20. }
  21. })
  22. })
  23. })
  24.  

6- Donde el Search.php es este.

Código
  1. <?php
  2. require_once "conexion.table.php";
  3. require_once "crud.php";
  4.  
  5. sleep(1);
  6.  
  7. $search = '';
  8. $nombres = '';
  9. if (isset($_POST['search'])){
  10. $search = $_POST['search'];
  11. }
  12.  
  13. $model = new Crud;
  14. $model->Searchi($search);
  15. $filas = $model->rows;
  16. $total = count($filas);
  17.  
  18.  if ($total>0 && $search!='')
  19.  {
  20. ?>
  21. <select class="selected" size="10">
  22. <?php
  23. foreach ($filas as $fila)
  24. {
  25. ?> <option id="resultados">
  26. <?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos'];
  27. ?> </option>
  28. <?php
  29. }
  30. ?>
  31. </select>
  32. <?php
  33.  }
  34.  
  35.   else { if($total>0 && $search=='') {
  36.   ?>
  37.   <select size="10">
  38.   <?php  
  39.   foreach ($filas as $fila)
  40. {
  41. ?>
  42. <option id="resultados">
  43. <?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos']; ?>
  44. </option>
  45. <?php
  46.   }
  47.   ?>
  48.   </select>
  49.   <?php
  50.  }
  51. }
  52. ?>
  53.  

- Eso ultimo me actualiza el Option de mi html y me muestra los registros en mi Select por medio de la funcion Searchi.

- Ahora aclaro todo eso me funciona de 10 si dejo mi clase conexion asi.

Código
  1. <?php
  2. class Conexion
  3. {    
  4.    public function conectar()
  5.       {
  6.            $server = 'sbvbieloven';
  7.            $database = 'HUYAP_N';
  8.            $username = 'profit';
  9.            $password = 'profit';
  10.            return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  11.     }
  12. }
  13. ?>
  14.  

- Si la dejo asi funciona al pelo me muestra los registros de esta BD fino y como yo quiero, pero no es la idea porque en mi primer html tengo un select con 3 opciones que son 3 bd distintas en el mismo gestor de bd y bueno la idea principal es esa pues tener una funcion que me permita visualizar la informacion que yo quiera al selecionar cualquiera de esas 3 bd.
35  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 4 Noviembre 2014, 18:40 pm
- MinusFour, eso ya lo habia echo antes y me daba este error:

Notice: Undefined index: cod_empresa in C:\xampp\htdocs\sismica\crud.php on line 13

- Osea antes ya habia intentado de la forma que me sugeristes.

Código
  1. $conexion = $model->conectar($_POST['cod_empresa']);

- Y en mi ignorancia hice un require_once de crud aqui:

Código
  1. <?php
  2.    require_once 'conexion.table.php';
  3.    require_once 'crud.php';
  4.  
  5.        $cod_empresa = (isset($_POST['cod_empresa'])) ? $_POST['cod_empresa'] : "";
  6. $Conexion = new Conexion();
  7. $Conexion->conectar($cod_empresa);
  8.  
  9.    if(isset($_POST['session']))
  10.    {
  11.        header('location:ready.php');
  12.    }
  13. ?>

- Pensando que habia que incluirlo hay para que aceptara el post pero igual me lanza:

Notice: Undefined index: cod_empresa in C:\xampp\htdocs\sismica\crud.php on line 13.
  
36  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 4 Noviembre 2014, 18:03 pm
- Buenas, vengo por el 2do round en primer lugar gracias por la paciencia que me han tenido.

- MinusFour me parece mas practico tener la clase conexion como me indicas pero primero quiero resolver lo otro.

- MinusFour, T.Collins me indican que en mis metodos rear y read llaman a $conexion->conectar() sin ningún argumento, pero que argumento se supone que deben tener porque lo puse asi:

Código
  1. $conexion = $model->conectar($cod_empresa);

 y me lanzo.

Notice: Undefined variable: cod_empresa in C:\xampp\htdocs\sismica\crud.php on line 32.

- Asi no hace nada.

Código
  1. $conexion = $model->conectar($cod_empresa="");

- Aclaro que tengo los .php Crud y Conexion por separados como lo expuse anteriormete.
37  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 3 Noviembre 2014, 22:18 pm
- Cada vez me siento mas frustrado dado que intento comprender y no puedo jajaja, no entiendo porque me haces referencia a esto.

Código
  1. $database = '';
  2. 'sqlsrv:Server=' . $server . ';Database='. $database;
  3.  


- Y me estas aclarando que me hace falta algo en mis metodos Read y Create y que es el $cod_empresa? debo tenerlos asi?

Código
  1. <?php
  2. class Crud
  3. {
  4. public $insertInto;
  5. public $insertColumns;
  6. public $insertValues;
  7. public $mensaje;
  8. public $rows;
  9.  
  10. public function Create($cod_empresa)
  11. {
  12. $model = new Conexion;
  13. $conexion = $model->conectar();
  14. $insertColumns = $this->insertColumns;
  15. $insertValues = $this->$insertValues;
  16. $sql = "INSERT INTO $insertInto ($insertColumns) VALUES ($insertValues)";
  17. $consulta = $conexion->prepare($sql);
  18. if (!$consulta)
  19. {
  20. $this->mensaje = "Error...";
  21. }
  22. else
  23. {
  24. $consulta->execute();
  25. $this->mensaje = "Registro Creado";
  26. }
  27. }
  28.  
  29. public function Read($cod_empresa)
  30. {
  31. $model = new Conexion();
  32. $conexion = $model->conectar();
  33. $sql = "SELECT * FROM snemple";
  34. $consulta = $conexion->prepare($sql);
  35. $consulta->execute();
  36.  
  37. while ($filas = $consulta->fetch())
  38. {
  39. $this->rows[] = $filas;
  40. }
  41. }
  42. }
  43. ?>
  44.  

- Si lo pongo asi me sale este error:

Warning: Missing argument 1 for Crud::Read(), called in C:\xampp\htdocs\sismica\ready.php on line 6 and defined in C:\xampp\htdocs\sismica\crud.php on line 29

-Otra cosa no es mejor tener esa clase junto con la conexion asi??

Código
  1. <?php
  2. class Conexion
  3. {
  4.    public $ndatabase ="";
  5.    public $insertInto;
  6. public $insertColumns;
  7. public $insertValues;
  8. public $mensaje;
  9. public $rows;
  10.  
  11.    public function conectar($cod_empresa="")
  12.       {
  13.  
  14.            $this->ndatabase = $cod_empresa;
  15.            $server = 'sbvbieloven';
  16.            $database = $this->ndatabase;
  17.            $username = 'profit';
  18.            $password = 'profit';
  19.            return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  20.     }
  21.    public function Create()
  22. {
  23. $model = new Conexion;
  24. $conexion = $model->conectar();
  25. $insertColumns = $this->insertColumns;
  26. $insertValues = $this->$insertValues;
  27. $sql = "INSERT INTO $insertInto ($insertColumns) VALUES ($insertValues)";
  28. $consulta = $conexion->prepare($sql);
  29. if (!$consulta)
  30. {
  31. $this->mensaje = "Error...";
  32. }
  33. else
  34. {
  35. $consulta->execute();
  36. $this->mensaje = "Registro Creado";
  37. }
  38. }
  39.  
  40. public function Read()
  41. {
  42. $model = new Conexion();
  43. $conexion = $model->conectar();
  44. $sql = "SELECT * FROM snemple";
  45. $consulta = $conexion->prepare($sql);
  46. $consulta->execute();
  47.  
  48. while ($filas = $consulta->fetch())
  49. {
  50. $this->rows[] = $filas;
  51. }
  52. }
  53.  
  54. }
  55. ?>
  56.  

- Ya estoy que tiro la toalla.
38  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 3 Noviembre 2014, 21:37 pm
- Hola MinusFour, en el ejemplo que expuse no establezco el nombre de la bd como parametro pero tambien expuse que.

1- Agregue como argumento el $cod_empresa="" a las funciones Read y Create y nada, ahora una pregunta si yo hago algo como esto no deberia de funcionar ??

2- Tambien intente ponerlo asi $cod_empresa...

- La verdad es que no entiendo porque no funciona... Intentare ser lo mas claro posible en

1- tengo este formulario.

Código
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.    <title>Control de Equipos</title>
  4.    <meta charset="utf-8">
  5.    <link rel="stylesheet" type="text/css" href="css/style.css">
  6. </head>
  7. <div id="login-form">    
  8.      <h3>Bases de Datos</h3>
  9.        <fieldset>
  10.            <form action="board_table.php" method="post">
  11.                <center>
  12.                    <select name="cod_empresa">
  13.                        <option Value="HUYAP_N">Proyecto H</option>
  14.                        <option Value="Zuat">Proyecto Z</option>
  15.                        <option Value="Ricl">Proyecto C</option>
  16.                    </select>
  17.                </center>    
  18.  
  19.                <input type="hidden" name="session">
  20.                <input id="sub" type="submit" value="Iniciar Conexión">
  21.            </form>
  22.        </fieldset>
  23. </div>
  24. </body>
  25. </html>
  26.  

- Eso me genera lo siguiente.


2- Con la ayuda de T.Collins realize lo siguiente ese formulario se viene aca.

Código
  1. <?php
  2.    require_once 'conexion.table.php';
  3.  
  4.        $cod_empresa = (isset($_POST['cod_empresa'])) ? $_POST['cod_empresa'] : "";
  5. $Conexion = new Conexion();
  6. $Conexion->conectar($cod_empresa);
  7.  
  8.    if(isset($_POST['session']))
  9.    {
  10.        header('location:ready.php');
  11.    }
  12. ?>
  13.  

2.1 - Donde la clase conexion es la siguiente.

Código
  1. <?php
  2. class Conexion
  3. {
  4.    public $ndatabase ="";
  5.  
  6.    public function conectar($cod_empresa="")
  7.       {
  8.            $this->ndatabase = $cod_empresa;
  9.            $server = 'sbvbieloven';
  10.            $database = $this->ndatabase;
  11.            $username = 'profit';
  12.            $password = 'profit';
  13.            return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  14.     }
  15. }
  16. ?>
  17.  

3- Seguidamente por la condicion del Punto 2 me redirecciona a esta pag.

Código
  1. <?php
  2. require_once "conexion.table.php";
  3. require_once "crud.php";
  4.  
  5. $model = new Crud;
  6. $model->Read();
  7. $filas = $model->rows;
  8. $total = count($filas);
  9.  
  10. ?>
  11. <meta charset="UTF-8">
  12. <link rel="stylesheet" type="text/css" href="css/style.css">
  13. </head>
  14. <body>
  15. <section class="criterio">
  16. <div id="crit-form">
  17. <h3>Criterio de Busquedas</h3>
  18. <form class="crit-form" name="search_form" id="search_form">
  19. <small> El Total de Filas en Base de Datos: <?php echo $total ?> </small>
  20. <select size="10">
  21. <?php
  22. foreach ($filas as $fila)
  23. {
  24. ?> <option id="resultados">
  25. <?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos'];
  26. ?> </option>
  27. </select>
  28. <small>Por Ficha</small>
  29. <input type="text" name="search" id="search_fi" placeholder="introduzca Codigo Ficha Ej: Ch001">
  30. <small>Por Cedula</small>
  31. <input type="text" name="search" id="search_ci" placeholder="Cedula Use Puntos Ej: 49.781.190">
  32. <small>Por Nombre</small>
  33. <input type="text" name="search" id="search" placeholder="introduzca un Nombre Ej: Antonio">
  34. <small>Por Estatus</small>
  35. <select >
  36. <option>Seleccione Estatus</option>
  37. <option selected>Activo</option>
  38. <option>Inactivo</option>
  39. <option>Por Liquidar</option>
  40. <option>Liquidado</option>
  41. </select>
  42. <input type="submit" Value="Procesar">
  43. </form>
  44. </div>
  45. </section>
  46. </body>
  47. </html>
  48.  

3.1- Y eso me da esta pantalla donde evidentemente se que hay un problema porque de bajo del total esta en blanco y "" Como Dije Antes Pasandole Directamente O Manualmente La BD a La Clase Conexion Todo Funciona Fino "".


4- Donde mi clase Crud es la siguiente.

Código
  1. <?php
  2. class Crud
  3. {
  4. public $insertInto;
  5. public $insertColumns;
  6. public $insertValues;
  7. public $mensaje;
  8. public $rows;
  9.  
  10. public function Create()
  11. {
  12. $model = new Conexion;
  13. $conexion = $model->conectar();
  14. $insertColumns = $this->insertColumns;
  15. $insertValues = $this->$insertValues;
  16. $sql = "INSERT INTO $insertInto ($insertColumns) VALUES ($insertValues)";
  17. $consulta = $conexion->prepare($sql);
  18. if (!$consulta)
  19. {
  20. $this->mensaje = "Error...";
  21. }
  22. else
  23. {
  24. $consulta->execute();
  25. $this->mensaje = "Registro Creado";
  26. }
  27. }
  28.  
  29. public function Read()
  30. {
  31. $model = new Conexion();
  32. $conexion = $model->conectar();
  33. $sql = "SELECT * FROM snemple";
  34. $consulta = $conexion->prepare($sql);
  35. $consulta->execute();
  36.  
  37. while ($filas = $consulta->fetch())
  38. {
  39. $this->rows[] = $filas;
  40. }
  41. }
  42. }
  43. ?>
  44.  

5 - Ahora cosas Sugeridas que hice MinusFour no se bien si aplique correctamente el Var_dump disculpa esa es que todo esto es nuevo para mi pero lo hice de esta forma.

- Elimine la condicion y aplique el var_dump aqui.

Código
  1. <?php
  2.    require_once 'conexion.table.php';
  3.  
  4.        $cod_empresa = (isset($_POST['cod_empresa'])) ? $_POST['cod_empresa'] : "";
  5. $Conexion = new Conexion();
  6. $Conexion->conectar($cod_empresa);
  7.  
  8.    // if(isset($_POST['session']))
  9.    //{
  10.    //    header('location:ready.php');
  11.    //}
  12.  
  13.   var_dump($_POST['cod_empresa']);
  14. ?>
  15.  

5.1- Resultado: string(10) "HUYAP_N".

6- Aplique Var_dump aqui.

Código
  1. <?php
  2. require_once "conexion.table.php";
  3. require_once "crud.php";
  4.        echo var_dump($_POST['cod_empresa']);
  5.  
  6. $model = new Crud;
  7. $model->Read();
  8. $filas = $model->rows;
  9. $total = count($filas);
  10.  
  11. ?>
  12. <meta charset="UTF-8">
  13. <link rel="stylesheet" type="text/css" href="css/style.css">
  14. </head>
  15. <body>
  16. <section class="criterio">
  17. <div id="crit-form">
  18. <h3>Criterio de Busquedas</h3>
  19. <form class="crit-form" name="search_form" id="search_form">
  20. <small> El Total de Filas en Base de Datos: <?php echo $total ?> </small>
  21. <select size="10">
  22. <?php
  23. foreach ($filas as $fila)
  24. {
  25. ?> <option id="resultados">
  26. <?php echo $fila['cod_emp'] . $fila['nombres'] ." ". $fila['apellidos'];
  27. ?> </option>
  28. </select>
  29. <small>Por Ficha</small>
  30. <input type="text" name="search" id="search_fi" placeholder="introduzca Codigo Ficha Ej: Ch001">
  31. <small>Por Cedula</small>
  32. <input type="text" name="search" id="search_ci" placeholder="Cedula Use Puntos Ej: 49.781.190">
  33. <small>Por Nombre</small>
  34. <input type="text" name="search" id="search" placeholder="introduzca un Nombre Ej: Antonio">
  35. <small>Por Estatus</small>
  36. <select >
  37. <option>Seleccione Estatus</option>
  38. <option selected>Activo</option>
  39. <option>Inactivo</option>
  40. <option>Por Liquidar</option>
  41. <option>Liquidado</option>
  42. </select>
  43. <input type="submit" Value="Procesar">
  44. </form>
  45. </div>
  46. </section>
  47. </body>
  48. </html>
  49.  

6.1- Resultado: Notice: Undefined index: cod_empresa in C:\xampp\htdocs\sismica\ready.php on line 10
NULL.

7- y luego lo aplique aqui.

Código
  1. <?php
  2. class Conexion
  3. {
  4.    public $ndatabase ="";    
  5.    public function conectar($cod_empresa="")
  6.       {
  7.  
  8.            $this->ndatabase = $cod_empresa;
  9.            $server = 'sbvbieloven';
  10.            $database = $this->ndatabase;
  11.            $username = 'profit';
  12.            $password = 'profit';
  13.            return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  14.     }
  15. }
  16. echo var_dump($_POST['cod_empresa']);
  17. ?>
  18.  

7.1- Resultado: Notice: Undefined index: cod_empresa in C:\xampp\htdocs\sismica\conexion.table.php on line 16
NULL
39  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 3 Noviembre 2014, 13:55 pm
- Buenos dias T. Collins disculpa por escribir tan tarde, pero este fin de semana no tuve tiempo... Intente lo que me sugeristes cambiando algunas cosas y al parecer funciono muchas gracias sin embargo creo que a raiz de esa solucion se me esta presentando otro problema y es que yo tengo otro .php que me genera una busqueda y una insercion pero ahora no funcionan y no muestran tampoco mensajes de error simplemente no hacen nada.

- Si yo a la clase conexion le paso directamente la bd a la que me quiero conectar la funcion de insercion y mostrar si funcionan pero cuando lo hago como me sugeristes dejan de funcionar por ejemplo si lo hago asi sirve.


Código
  1. <?php
  2. class Conexion
  3. {
  4.  
  5.    public function conectar()
  6.       {
  7.  
  8.            $server = 'sbvbieloven';
  9.            $database = 'huyapari_n';
  10.            $username = 'profit';
  11.            $password = 'profit';
  12.            return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  13.     }
  14.  
  15. }
  16. ?>


- Así si funciona, obviamente no es la idea hacerlo de esa forma. En mi ignorancia no se si es porque la conexion no se mantiene despues de pasarle el cod_empresa desde el form te muestro las desmas funciones.


Código
  1. <?php
  2. class Crud
  3. {
  4. public $insertInto;
  5. public $insertColumns;
  6. public $insertValues;
  7. public $mensaje;
  8. public $rows;
  9.  
  10. public function Create()
  11. {
  12. $model = new Conexion;
  13. $conexion = $model->conectar();
  14. $insertColumns = $this->insertColumns;
  15. $insertValues = $this->$insertValues;
  16. $sql = "INSERT INTO $insertInto ($insertColumns) VALUES ($insertValues)";
  17. $consulta = $conexion->prepare($sql);
  18. if (!$consulta)
  19. {
  20. $this->mensaje = "Error...";
  21. }
  22. else
  23. {
  24. $consulta->execute();
  25. $this->mensaje = "Registro Creado";
  26. }
  27. }
  28.  
  29. public function Read()
  30. {
  31. $model = new Conexion();
  32. $conexion = $model->conectar();
  33. $sql = "SELECT * FROM snemple";
  34. $consulta = $conexion->prepare($sql);
  35. $consulta->execute();
  36.  
  37. while ($filas = $consulta->fetch())
  38. {
  39. $this->rows[] = $filas;
  40. }
  41. }
  42. }
  43. ?>


- Intente incluirlas en un solo archivo para ver si asi se solucionaba el problema y nada, intente de esta forma.


Código
  1. <?php
  2. class Conexion
  3. {
  4.    public $ndatabase ="";
  5.    public $insertInto;
  6. public $insertColumns;
  7. public $insertValues;
  8. public $mensaje;
  9. public $rows;
  10.  
  11.    public function conectar($cod_empresa="")
  12.       {
  13.            $this->ndatabase = $cod_empresa;
  14.            $server = 'sbvbieloven';
  15.            $database = $this->ndatabase;
  16.            $username = 'profit';
  17.            $password = 'profit';
  18.            return $conexion = new PDO('sqlsrv:Server=' . $server . ';Database='. $database, $username, $password);
  19.     }
  20.  
  21.    public function Create()
  22. {
  23. $model = new Conexion;
  24. $conexion = $model->conectar();
  25. $insertColumns = $this->insertColumns;
  26. $insertValues = $this->$insertValues;
  27. $sql = "INSERT INTO $insertInto ($insertColumns) VALUES ($insertValues)";
  28. $consulta = $conexion->prepare($sql);
  29. if (!$consulta)
  30. {
  31. $this->mensaje = "Error...";
  32. }
  33. else
  34. {
  35. $consulta->execute();
  36. $this->mensaje = "Registro Creado";
  37. }
  38. }
  39.  
  40. public function Read()
  41. {
  42. $model = new Conexion();
  43. $conexion = $model->conectar();
  44. $sql = "SELECT * FROM snemple";
  45. $consulta = $conexion->prepare($sql);
  46. $consulta->execute();
  47.  
  48. while ($filas = $consulta->fetch())
  49. {
  50. $this->rows[] = $filas;
  51. }
  52. }
  53. }
  54. ?>


- Tambien Intente.

1- Agregarle como argumento el $cod_empresa="" a las funciones Read y Create y nada

2- Les quite el $model = new Conexion; porque pense que ya no tenia caso dejarselos y nada
hay me mostro.
- Fatal error: Call to undefined function prepare() in C:\xampp\htdocs\sismica\conexion.table.php on line 42.

- Espero puedas ayudarme con esto de antemano muchas gracias.
40  Programación / PHP / Re: PHP OO Pasar un parametro o variable a una clase en: 31 Octubre 2014, 21:38 pm
- Buenas T. Collins, no entendi muy bien... Que tengo que cambiar en la funcion conectar?... Esas dos lineas supongo que las tengo que poner asi ??:

Código
  1. <?php
  2.    require_once 'conexion.table.php';
  3.  
  4.        $CONN = new Conexion();
  5.     $CONN->conectar($_POST['cod_empresa']);
  6.  
  7.    if(isset($_POST['session']))
  8.    {
  9.        header('location:ready.php');
  10.    }
  11. ?>
  12.  
  13.  

- Estoy enfrascado cada vez entiendo menos :/ ...
Páginas: 1 2 3 [4] 5 6 7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines