PHP - php mostrar datos en input para modificarlos

 
Vista:
sin imagen de perfil

php mostrar datos en input para modificarlos

Publicado por Slayer (11 intervenciones) el 03/04/2018 18:23:17
Que tal buen día,
Tengo una tabla y un formulario que captura algunos de los campos de la tabla, los demás campos se capturan en el formulario "modificar" el detalle es que despúes de haberlos modificado, al modificarlo de nuevo ya no me trae la información del registro y el input se muestra en blanco. si doy clic en aceptar se guarda el registro Null. cómo evito ésto y que me traiga la info correpondiente? salu2
Captura
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

php mostrar datos en input para modificarlos

Publicado por Yamil Bracho (888 intervenciones) el 03/04/2018 18:26:29
Por favor publica algo del codigo que estas usando... :-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

php mostrar datos en input para modificarlos

Publicado por Slayer (11 intervenciones) el 03/04/2018 18:44:22
LES MUESTRO EL CÓDIGO DE MODIFICAR Y OTRO FORM LLAMADO UPDATE DONDE VIENE EL SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?php
require 'conexion.php';
$id = $_GET ['id'];
 
$sql = "SELECT * FROM registros WHERE id ='$id'";
$resultado = $mysqli->query($sql);
$row = $resultado->fetch_array(MYSQLI_ASSOC)
?>
 
 
<html lang="es">
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link href="css/bootstrap.min.css" rel="stylesheet">
         <link href="css/style.css" rel="stylesheet">
        <link href="css/bootstrap-theme.css" rel="stylesheet">
        <script src="js/jquery-3.1.1.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <title>Modificar registro</title>
    </head>
 
    <body>
        <div class="container">
            <div class="row">
                <h3 style="text-align:center">MODIFICAR REGISTRO</h3>
            </div>
 
            <form class="form-horizontal" method="POST" action="update.php" autocomplete="off">
             <input type="hidden" id=id" name= "id" value= "<?php echo $row['id'];?>"/>

   <div class="form-group">
                    <label for="importe_cheque" class="col-sm-2 control-label">Importe cheque</label>
                    <div class="col-sm-10">
                        <input type="number" class="form-control" id="importe_cheque" name="importe_cheque" placeholder="Importe cheque" value="<?php echo $row['importe_cheque'];?>" >
                    </div>
                </div>


                <div class="form-group">
                    <label for="importe_retencion" class="col-sm-2 control-label">Importe retención</label>
                    <div class="col-sm-10">
                        <input type="number" class="form-control" id="importe_ret" name="importe_ret" placeholder="Importe retención" value="<?php echo $row['importe_ret'];?>" >
                    </div>
                </div>

<!-- inicio selector status-->

<div class="form-group">
    <label for="linea" class="col-sm-2 control-label">Status</label>
        <?php 
$server     = 'localhost'; 
$username   = 'root'; 
$password   = ''; 
$database   = 'personal'; 
        $conexion = @new mysqli($server, $username, $password, $database);
        $sql="SELECT * from status";
$result = $conexion->query($sql); 
 
if ($result->num_rows > 0) 
{
    $combobit="";
    while ($row = $result->fetch_array(MYSQLI_ASSOC)) 
    {
        $combobit .=" <option value='".$row['id']."'>".$row['status']."</option>";
    }
}
else
{
    echo "No hubo resultados";
}
$conexion->close();
?>
 
 
<link href="contactos.css" rel="stylesheet" type="text/css" />
 <div class="col-sm-10">
   <select  class= "form-control"  id="status" name="status" >
      <option disabled="" selected="" value="<?php echo $row['status'];?>">Elija una opción</option>
       <?php echo $combobit; ?>
   </select>
 
 
          <style type="text/css">
    select:required:invalid {
        color:#999;
    }
    option[value=""][disabled] {
        display: none;
    }
    option {
        color: black;
    }
    </style>
 
</div>
</div>
 
 
 
 
 
 
<!-- fin de selector de status-->
 
 
 
 
                <div class="form-group">
                    <label for="fecha" class="col-sm-2 control-label">Fecha</label>
                    <div class="col-sm-10">
                        <input type="date" class="form-control" id="fecha" name="fecha" placeholder="fecha" value=<?php echo $row['fecha'];?> >
                    </div>
                </div>
 
 
 
                    <div class="form-group">
                    <label for="hora" class="col-sm-2 control-label">Hora</label>
                    <div class="col-sm-10">
                        <input type="text" class="form-control" id="hora" name="hora" placeholder="Hora" value="<?php echo $row['hora'];?>">
                    </div>
                </div>
 
                    <div class="form-group">
                    <label for="comentarios" class="col-sm-2 control-label">Comentarios</label>
                    <div class="col-sm-10">
                        <textarea class="form-control" rows="1"  id="comentario" name="comentario" placeholder="Comentarios" value="<?php echo $row['comentario'];?>"></textarea>
                </div>
                </div>
<br>
 
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <a href="index.php" class="btn btn-default">Regresar</a>
                        <button type="submit" class="btn btn-primary">Guardar</button>
                    </div>
                </div>
            </form>
        </div>
    </body>
</html>

el form UPDATE es el siguiente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
 
	require 'conexion.php';
 
	$id= $_POST['id'];
	$fecha = $_POST['fecha'];
	$importe_cheque = $_POST['importe_cheque'];
	$importe_ret = $_POST['importe_ret'];
	$status = $_POST['status'];
	$hora = $_POST['hora'];
	$comentario = $_POST['comentario'];
 
 
 
 
	$sql ="UPDATE registros SET
	fecha='$fecha',
	importe_cheque='$importe_cheque',
	importe_ret='$importe_ret',
	status='$status', hora='$hora',
	comentario='$comentario'
	
	WHERE id = '$id'";
 
	$resultado = $mysqli->query($sql)  ;
 
 
 
 
?>
 
<html lang="es">
	<head>
 
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<link href="css/bootstrap.min.css" rel="stylesheet">
		<link href="css/bootstrap-theme.css" rel="stylesheet">
		<script src="js/jquery-3.1.1.min.js"></script>
		<script src="js/bootstrap.min.js"></script>
	</head>
 
	<body>
		<div class="container">
			<div class="row">
				<div class="row" style="text-align:center">
					<?php if($resultado) { ?>
						<h3>REGISTRO MODIFICADO CORRECTAMENTE</h3>
						<?php } else { ?>
						<h3>ERROR AL MODIFICAR</h3>
					<?php } ?>
 
					<a href="index.php" class="btn btn-primary">Regresar</a>
 
				</div>
			</div>
		</div>
	</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

php mostrar datos en input para modificarlos

Publicado por gonzalo (615 intervenciones) el 03/04/2018 18:47:52
el problema se genera al momento de guardar la informacion cierto?

si este es el caso entonces

1 lo que debes hacer es mencionar el campo en cuestion al momento de insertar el registro aun si esta en blanco.
2 al momento de definir la tabla le puedes asignar un valor por default, asi si el campo no es mencionado se guarda con la informacion por default.

espero sea de ayuda.

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

php mostrar datos en input para modificarlos

Publicado por Slayer (11 intervenciones) el 03/04/2018 20:11:32
Hice lo que me comentaste, sigue sin funcionar, el problema se genera al momento de intentar mostrar el contenido del campo en el input del formulario Modificar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 75
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

php mostrar datos en input para modificarlos

Publicado por marcelo (35 intervenciones) el 04/04/2018 04:38:34
Hola Slayer, con respecto a tu problema entiendo que queres dejar seleccionado en la lista de opciones el campo a modificar(selected) y entiendo que para mostrar el listado de campos disponibles no tenes drama, bueno tengo el mismo problema estoy intentando solucionar, por el momento te paso algo de información para que tengas en cuenta si no es que ya la utilizaste, en el formulario que mostras tenes un campo fecha y hora, tene en cuenta que en la base de datos cuando creas la tabla podes agregar un campo que se llame tiempo o como quieras y elijas la opcion timestamp eso te va a mostrar fecha y hora de cuando el registro fue manipulado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

php mostrar datos en input para modificarlos

Publicado por Slayer (11 intervenciones) el 04/04/2018 14:43:00
buen tip, gracias!
éxito en tu problema, si encuentro solución la comparto. salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

php mostrar datos en input para modificarlos

Publicado por italo (150 intervenciones) el 06/04/2018 10:29:06
hola, debes de revisar como has creado en tu base de datos el campo fecha de tu tabla y hora tambien, recuerda en mysql los inserta con YYYY-MM-DD lo mismo que la hora HH:MM:SS , si es que los has creado con DATE y TIME respectivamente. (definirlos como text es un error)

Si al momento del primer insert o update (antes de la opcion de modificar) los has puesto en otro formato posiblemente los veas con 0000-00-00 o incluso puede ser que la query te haya dado error y tu pienses que los ha insertado pero no es asi por eso los ves en blanco.

la solucion?

debes de trabajar en el control de errores que te origine mysql... con las respectivas funciones (mysqli_error)


he modificado tus files (sin la gestion de errores) no es tan complido y hay amplia informacion para que los actualices, basta un if y un else.

se supone que:

1
$id = $_GET['id'];

llega por medio de un url correcto?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
require 'conexion.php';
 
$id = $_GET['id'];
 
$sql = "SELECT * FROM registros WHERE id = '$id'";
$resultado = $mysqli->query($sql);
$row = $resultado->fetch_array(MYSQLI_ASSOC);
?>
 
 
<html lang="es">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
    <link href="contactos.css" rel="stylesheet" type="text/css" />
    <link href="css/bootstrap-theme.css" rel="stylesheet">
 
    <script src="js/jquery-3.1.1.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
 
    <title>Modificar registro</title>
</head>
 
<style type="text/css">
select:required:invalid {
  color:#999;
}
option[value=""][disabled] {
  display: none;
}
option {
  color: black;
}
</style>
 
<body>
  <div class="container">
    <div class="row">
      <h3 style="text-align:center">MODIFICAR REGISTRO</h3>
    </div>
 
    <form class="form-horizontal" method="POST" action="update.php" autocomplete="off">
      <input type="hidden" id="id" name="id" value="<?php echo $row['id'];?>">
      <div class="form-group">
        <label for="importe_cheque" class="col-sm-2 control-label">Importe cheque</label>
          <div class="col-sm-10">
            <input type="number" class="form-control" id="importe_cheque" name="importe_cheque" placeholder="Importe cheque" value="<?php echo $row['importe_cheque'];?>" >
          </div>
      </div>
      <div class="form-group">
        <label for="importe_retencion" class="col-sm-2 control-label">Importe retención</label>
          <div class="col-sm-10">
            <input type="number" class="form-control" id="importe_ret" name="importe_ret" placeholder="Importe retención" value="<?php echo $row['importe_ret'];?>" >
          </div>
      </div>
 
      <!-- inicio selector status-->
      <div class="form-group">
        <label for="linea" class="col-sm-2 control-label">Status</label>
        <?php
        /*
        $server = 'localhost'; 
        $username = 'root'; 
        $password = ''; 
        $database = 'personal'; 
        $conexion = @new mysqli($server, $username, $password, $database);
        $sql="SELECT * from status";
        $result = $conexion->query($sql); 
        */
        $sql_status = "SELECT * from status";
        $resultado_status = $mysqli->query($sql_status);
 
        if ($resultado_status->num_rows > 0)
        {
          $combobit = "";
          while ($row_status = $resultado_status->fetch_array(MYSQLI_ASSOC))
          {
            $combobit .= "<option value='".$row_status['id']."'>".$row_status['status']."</option>";
          }
        }
        //else
        //{
        //  echo "No hubo resultados";
        //}
        //$conexion->close();
        $mysqli->close();
        ?>
 
        <div class="col-sm-10">
          <select  class= "form-control"  id="status" name="status" >
            <option disabled="" selected="" value="">Elija una opción</option>
            <?php echo $combobit; ?>
          </select>
        </div>
      </div>
      <!-- fin de selector de status-->
 
      <div class="form-group">
        <label for="fecha" class="col-sm-2 control-label">Fecha</label>
          <div class="col-sm-10">
            <input type="date" class="form-control" id="fecha" name="fecha" placeholder="fecha" value=<?php echo $row['fecha'];?>>
          </div>
      </div>
 
      <div class="form-group">
        <label for="hora" class="col-sm-2 control-label">Hora</label>
          <div class="col-sm-10">
            <input type="text" class="form-control" id="hora" name="hora" placeholder="Hora" value="<?php echo $row['hora'];?>">
          </div>
      </div>
 
      <div class="form-group">
        <label for="comentarios" class="col-sm-2 control-label">Comentarios</label>
          <div class="col-sm-10">
            <textarea class="form-control" rows="1"  id="comentario" name="comentario" placeholder="Comentarios" value="<?php echo $row['comentario'];?>"></textarea>
          </div>
      </div>
<!-- <br> -->
 
      <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
          <a href="index.php" class="btn btn-default">Regresar</a>
          <button type="submit" class="btn btn-primary">Guardar</button>
        </div>
      </div>
    </form>
  </div>
 
</body>
</html>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
 
require 'conexion.php';
 
$id= $_POST['id'];
$fecha = $_POST['fecha'];
$importe_cheque = $_POST['importe_cheque'];
$importe_ret = $_POST['importe_ret'];
$status = $_POST['status'];
$hora = $_POST['hora'];
$comentario = $_POST['comentario'];
 
$sql ="UPDATE registros SET fecha='$fecha', importe_cheque='$importe_cheque', importe_ret='$importe_ret', status='$status', hora='$hora', comentario='$comentario' WHERE id = '$id'";
 
$resultado = $mysqli->query($sql);
 
?>
 
<html lang="es">
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <link href="css/bootstrap-theme.css" rel="stylesheet">
  <script src="js/jquery-3.1.1.min.js"></script>
  <script src="js/bootstrap.min.js"></script>
</head>
 
<body>
  <div class="container">
	  <div class="row">
			<div class="row" style="text-align:center">
        <?php
        if($resultado) {
        ?>
          <h3>REGISTRO MODIFICADO CORRECTAMENTE</h3>
        <?php
        }
        else { ?>
          <h3>ERROR AL MODIFICAR</h3>
        <?php
        }
        ?>
        <a href="index.php" class="btn btn-primary">Regresar</a>
 			</div>
		</div>
	</div>
 
</body>
</html>

por otra parte, nose como tienes tu aplicacion, pero si muestras todo dentro de tu index.php basta que definas el los files *.css y *.js interno o externos solo en ese file, no esta correcto ponerlos en cada pagina.

lo mismo con el llamado al codigo de mysql, basta que escribas todos en el file de configuracion y luego lo llames cuando sea necesario...

prueba, si tienes errores escribelos y explica tu problema.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar