
Ayuda con recepción de datos JSON con PHP
Publicado por Alberto (1 intervención) el 19/11/2015 20:25:53
Buenas tardes, tengo una duda. Vereis, tengo una página que muestra una tabla con ofertas de trabajo. La idea es que cuando haces click en el botón editar de su fila aparezca un formulario en la página para modificar los datos que el usuario desee. Para que al enviar el formulario no se cambie nada que el usuario no haya modificado, quiero que el value de cada input tenga los datos de esa oferta ya escritos. El problema que tengo es que no se cómo hacer para que las variables contengan los datos de esa oferta, si pongo <?php echo $titulo?> me carga el valor de la última oferta de la tabla.
En fin... estoy un poco liado con el tema, a ver si podeis ayudarme:
-------------------------------------------EMPRESAS-ANUNCIOS.PHP------------------------------------------------------
-----------------------------------------------EMPRESAS-ANUNCIOS_MODEL.PHP------------------------------------------
-----------------------------------------------------EMPRESAS_ANUNCIOS.JS---------------------------------------------------
En fin... estoy un poco liado con el tema, a ver si podeis ayudarme:
-------------------------------------------EMPRESAS-ANUNCIOS.PHP------------------------------------------------------
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
<?php
include('empresas-anuncios_model.php');
?>
<!DOCTYPE html>
<html lang="es">
<head>
<title>JoJobs</title>
<meta charset="utf-8">
<link rel="stylesheet" href="css/estilo.css" type="text/css" media="screen">
<link rel="stylesheet" type="text/css" src="jquery-ui-1.11.4.custom/jquery-ui.css">
<script type="text/javascript" src="jquery/jquery-1.11.3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="jquery-ui-1.11.4.custom/jquery-ui.js"></script>
<script type="text/javascript" src="jojobs.js"></script>
<script type="text/javascript" src="empresas_anuncios.js"></script>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
<script src="bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<div>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">JoJobs</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class=""><a href="index.php" name="inicio">Inicio</a></li>
<li class=""><a href="empresas_perfil.php"><?php echo $_SESSION['nombre']; ?></a></li>
<li class="active"><a href="empresas-anuncios.php">Anuncios</a></li>
<li class=""><a href="publicar_oferta.php">Publicar oferta</a></li>
<li class=""><a href="">Cerrar sesión</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
</div>
<div id="botones-anuncios">
<div>
<input class="icon-size" type="image" name="oferta_add" src="images/oferta_add.png" onclick="redir_toPublicarOferta()">
</div>
</div>
<div class="divtbl_ofertas">
<table class="tabla_ofertas">
<tbody>
<tr>
<th>ID</th>
<th width='400'>Titulo</th>
<th width='200'>Area</th>
<th>Suscritos</th>
<th>Seleccionados</th>
<th></th>
<th></th>
</tr>
<?php
$num_anuncios = countAnuncios($_SESSION['nombre']);
if($num_anuncios <= 0){
echo '<tr><td colspan="5">No hay ofertas publicadas</td></tr>';
}
?>
</tbody>
</table>
</div>
<div id='div_editarOferta' class='editarOferta' style='display: none'>
<form action="" method="post" ENCTYPE="multipart/form-data">
Titulo: <input type="text" name="titulo" value=<?php echo $titulo?>>
Descripcion:<input type="text" name="descripcion" value=<?php echo $descripcion?>>
Area:<input type="text" name="area" value=<?php echo $area?>>
Fecha inicio:<input type="text" name="f_ini" id="datepicker" value=<?php echo $f_ini?>>
Fecha fin:<input type="text" name="f_fin" id="datepicker" value=<?php echo $f_fin?>>
Vacantes:<input type="text" name="vacantes" value=<?php echo $vacantes?>>
Provincia:<input type="text" name="provincia" value=<?php echo $provincia?>>
<input type="submit" class="btn_form-reg_enviar" value="Enviar" name="enviar">
</form>
</div>
</body>
</html>
<?php
if($_POST['id'])){
}
?>
-----------------------------------------------EMPRESAS-ANUNCIOS_MODEL.PHP------------------------------------------
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
<?php
SESSION_START();
error_reporting(0);
$empresa_sesion = $_SESSION['nombre'];
include('funciones.php');
$conexion = connectDB();
$consulta_ofertas = "SELECT * FROM ofertas WHERE empresa='$empresa_sesion'";
$result = mysqli_query($conexion, $consulta_ofertas);
while($fila = mysqli_fetch_array($result)){
$id = $fila['id'];
$titulo = $fila['titulo'];
$area = $fila['area'];
$n_suscritos = $fila['n_suscritos'];
$n_selec = $fila['n_selec'];
$descripcion = $fila['descripcion'];
$provincia = $fila['provincia'];
$detalles = $fila['detalles'];
$f_ini = $fila['f_ini'];
$f_fin = $fila['f_fin'];
$vacantes = $fila['vacantes'];
$ofertas[] = array('id'=> $id, 'titulo'=> $titulo, 'area'=> $area, 'descripcion'=> $descripcion, 'provincia'=> $provincia, 'detalles'=> $detalles, 'f_ini'=> $f_ini, 'f_fin'=> $f_fin, 'n_suscritos'=> $n_suscritos, 'n_selec'=> $n_selec);
}
$json_string = json_encode($ofertas);
echo $json_string;
if($_POST['id']){
$id = $_POST['id'];
$id = json_decode($id);
$eliminar_oferta = "DELETE FROM ofertas WHERE id='$id'";
mysqli_query($conexion, $eliminar_oferta);
}
mysqli_close($conexion);
?>
-----------------------------------------------------EMPRESAS_ANUNCIOS.JS---------------------------------------------------
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
$(document).ready(function(){
var nFila;
var url = "empresas-anuncios_model.php";
var tr;
$.getJSON(url, function(ofertas){
$.each(ofertas, function(i, oferta){
nFila = "<tr class='anuncios-fila'><td class='oferta-id' name='id'>"+oferta.id+"</td><td name='titulo'>"+oferta.titulo+"</td><td name='area'>"+oferta.area+"</td><td name='n_suscritos'>"+oferta.n_suscritos+"</td><td name='n_selec'>"+oferta.n_selec+"</td> <td><input class='btn_editar_oferta icon-size' type='image' name='oferta_edit' src='images/oferta_edit.png' style='width: 30px; height: 30px'></td> <td><input class='btn_borrar_oferta icon-size' type='image' name='oferta_delete' src='images/oferta_supr.png' style='width: 25px; height: 25px'></td></tr>";
$('.tabla_ofertas').append(nFila);
});
$('.btn_borrar_oferta ').click(function(){
var idOferta = $(this).parents("tr").find(".oferta-id").text();
$(this).parents("tr").remove();
eliminarOferta(idOferta);
});
$('.btn_editar_oferta').click(function(){
var idOferta = $(this).parents("tr").find(".oferta-id").text();
$('#div_editarOferta').css('display', 'inline-block');
var posicion = $("#div_editarOferta").offset().top;
$("html, body").animate({
scrollTop: posicion
}, 1000);
editarOferta(idOferta);
});
}).fail(function(){
console.log('Upss, algo no va bien :(');
}).done(function(){
console.log('Yeah');
});
});
function eliminarOferta(idOferta){
var idOferta_json = JSON.stringify(idOferta);
$.ajax({
url: 'empresas-anuncios_model.php',
type: 'POST',
assync: true,
data: {'id': idOferta_json},
dataType: 'json',
encode: true,
success: function(){ alert("eureka!")},
error: function(){ alert("algo va mal...")}
});
}
function editarOferta(idOferta){
var idOferta_json = JSON.stringify(idOferta);
$.ajax({
url: 'empresas-anuncios.php',
type: 'POST',
assync: true,
data: {'id': idOferta_json},
dataType: 'json',
encode: true,
success: function(){ alert("eureka!")},
error: function(){ alert("algo va mal...")}
});
}
Valora esta pregunta


0