Система поисков в ajax и php

Ошибка, которая у меня есть, не показывает мне результат в должном 'результате' у меня есть следующий код

test2.php

 $search = '';

if (isset($_GET['search'])) {
    $search = $_GET['search'];
}

$consulta = "SELECT * FROM test WHERE articulo LIKE '%" .$search. "%' OR nombre  LIKE '%" .$search. "%' ORDER BY visit LIMIT 5";
$resultado = $con->query($consulta);
$fila = mysqli_fetch_assoc($resultado);

$total = mysqli_num_rows($resultado);
?>

<?php if ($total>0 && $search!='') { ?>
        <h1>Resultado</h1>

              <?php echo $fila['nombre']; ?>
              <?php echo $fila['articulo']; ?>
        <?php  while ($fila=mysqli_fetch_assoc($resultado)){; ?>    

<?php } } ?>

и в ajax у меня есть следующее

 $(function(){
    $('#search_form').submit(function(e){
        e.preventDefault();
    })

    $('#search').keyup(function(){
        var envio = $('#search').val();

        $('#resultado').html('<i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>');

        $.ajax({
            type: 'POST',
            url: 'test2.php',
            data: ('search='+envio),
            success: function(resp){
                if(resp!="") {
                    $('#resultado').html(resp);
                }
            }
        })
    })
})

правда не, что я врежу

<form action="" method="POST" name="search_form" id="search_form">
                  <input type="text" name="search" id="search">
                </form>
  <div id="resultado"></div> 
0
задан 19.08.2016, 05:49
2 ответа

В Test2.php ты читаешь параметр "search" из-за $_GET:

if (isset($_GET['search'])) {
    $search = $_GET['search'];
}

Взамен ты посылаешь информацию из-за $_POST

$.ajax({
    type: 'POST',
    url: 'test2.php',
    data: ('search='+envio),
    success: function(resp){
        if(resp!="") {
            $('#resultado').html(resp);
        }
    }
})

Следовательно переменная поисков всегда пустая.

2
ответ дан 24.11.2019, 13:36
  • 1
    Хотя это отвечает вопрос, обязанность и # 237; схвати объяснять ему пользователя, который этот способ это делать позволяет inyecci и # 243; n SQL и это риск в безопасность. Чтобы округлять ответ, помещать пример как дезинфицировать ввод. Привет! –  rnrneverdies 19.08.2016, 19:36

В архиве test2.php я вижу точку с запятой, что не deberГ - чтобы идти ahГ-.

<?php  while ($fila=mysqli_fetch_assoc($resultado)){; ?>
0
ответ дан 24.11.2019, 13:36
  • 1
    Даже продолжи быть равным –  Josbert Hernandez 19.08.2016, 06:07