0

hola amigos tengo una problema y me gustaría saber que dice ustedes o que tengo mal o no sé, pasa que tengo un formulario que tiene uno campos que son llenados por una consulta query, y pues al momento de editar una casilla no se actualiza el campo aquí dejo el código para que me digan que puede estar mal o como seria la solución. ¡gracias!

$(document).ready(function(){

$('input').blur(function(){
    var field = $(this);
    var parent = field.parent().attr('id');
    field.css('background-color','#F3F3F3');

    if($('#'+parent).find(".ok").length){
        $('#'+parent+' .ok').remove();
        $('#'+parent+' .loader').remove();
        $('#'+parent).append('<div><img src="img/loader.gif"/></div>').fadeIn('slow');
    }else{
        $('#'+parent).append('<div><img src="img/loader.gif"/></div>').fadeIn('slow');
    }

    var dataString='value='+$(this).val()+'&field='+$(this).attr('name');
    $.ajax({
        type: "POST",
        url: "peticion/editar-perfil.php",
        data: dataString,
        success: function(data) {
            field.val(data);
            $('#'+parent+' .loader').fadeOut(function(){
                $('#'+parent).append('<div><img src="img/check.png"/></div>').fadeIn('slow');
            });

        }
    });
});

}); // edit profile el formulario es :

       <form>
                                  <div class="form-group">
                                        <div id="content_name">Nombre<br/>
                                        <input type="text" id="name" class="form-control req" name="first_name" value="<?=$row['first_name']?>"/>
                                    </div>
                                </div>
                                    <div class="form-group">
                                       Apellidos<br/>
                                       <input type="text" id="lastname" class="form-control req" name="lastname" value="<?=$row['last_name']?>" />
                                        </div>
                                    <div class="form-group">
                                        Email<br/>
                                        <input type="text" id="email" class="form-control" name="email" value="<?=$row['email']?>" />
                                     </div>
                                    <div class="form-group">
                                        Biografía<br/>
                                        <textarea rows="7" cols="30" class="form-control"  name="biography"><?=$row['biography']?></textarea>
                                        </div>
                        </form>

BD conexión :

<?php
sleep(1);
$data = $_POST['value'];
$field = $_POST['field'];

$host = '127.0.01';
$user = 'root';
$pass = '';
$db = 'n260m_20xxxxx21_wifi';
$mysqli = new mysqli($host,$user,$pass,$db) or die($mysqli->error);


$update="UPDATE users SET $field=$data WHERE id=1";
$mysqli->query($update);

echo $data;
// echo $update;
?>
Jaime Mateus
  • 151
  • 8
  • Este código presenta vulnerabilidades graves de seguridad y no debería ser utilizado en un entorno de producción. Lee sobre [inyección SQL](https://es.stackoverflow.com/q/10518/250) y [cómo evitarla en PHP](https://es.stackoverflow.com/q/18232/250). – Alvaro Montoro Aug 21 '17 at 15:39
  • si amigo eso lo sé jajaja es que solo lo tengo en el localhost ya después le hago el saneado para evitar eso, gracias igualmente. – Jaime Mateus Aug 21 '17 at 16:34

1 Answers1

2

Veo un error en el update de tu base de datos:

Captura tus datos:

$first_name = $_POST['first_name'];
$lastname   = $_POST['lastname'];
$email      = $_POST['email'];
$biography  = $_POST['biography'];
$id         = 1;

En la actualización de los campos sería:

$update = "UPDATE users SET first_name='$first_name', lastname='$lastname', email='$email', biography='$biography' WHERE id='$id'";

Si te fijas después del SET se hace de está manera:

name='$valor'

Si tuvieras un valor sería algo así:

$update="UPDATE users SET field='$data' WHERE id='$id'";
Raul
  • 264
  • 1
  • 8
  • fíjate amigo que si hize así y si actualiza, pero al momento de manda la respuesta el (peticion/editar-perdil.php) al ajax no me muestra el check.png para indicar que se modificó el registro. – Jaime Mateus Aug 21 '17 at 16:37