Почему моя функция не отправляет переменные в ajax? - PullRequest
0 голосов
/ 31 октября 2018

У меня есть код в php, который генерирует кнопку и имеет функцию java-скрипта в другом файле, но он не работает, я должен отправить значение $ id, чтобы обновить файл php базы данных, но он ничего не делает

индекс:

<button type="button" class="btn btn-primary" onclick="antenderOrden($folio)">Atender</button>

код JavaScript:

  function atenderOrden(folio) {
    $.ajax({
      type: 'post',
      url: '../panel/data.php',
      data: 'folio=' + folio + 'status=A',
      success: function (data) {
          location.reload();
      }
    });
  }

php код:

//Actualiza el estatus de un registro de orden en la base de datos
if (isset($_POST['folio']) && isset($_POST['status'])) {
    $obj = new Orden();
    $resp = $obj->updateOrden($_POST['folio'], $_POST['status']);
    echo $resp;
    }
    class Orden{
    public function updateOrden($folio, $status) {
        //$conn = new Conexion();
        $conn->conectar();
        $query = "UPDATE c_ordenes SET statuso = '$status' WHERE folio = '$folio'";
        try {
            $resp = $conn->consulta($query);
            $resp = "OK";
        } catch (Exception $ex) {
            $resp = $ex;
        }
        $conn->cerrar();
        return $resp;
    }
}

Ответы [ 5 ]

0 голосов
/ 31 октября 2018

Есть две вещи, которые написаны неправильно.

1) Вы должны добавить тег php <?php ?> при вызове переменной php на стороне html.

Вот почему вы должны написать так в HTML:

<button type="button" class="btn btn-primary" onclick="antenderOrden(<?php echo $folio;?>)">Atender</button>

2) Второй способ передачи данных в ajax неправильный.

Существует два типа передачи данных:

Использование & оператора и второй - передача данных в {}.

data: {
         folio : folio ,
          status : 'A'
        },

или

data: 'folio=' + folio + '&status=A',

Пожалуйста, проверьте и обновите ваш код.

0 голосов
/ 31 октября 2018

Попробуйте это Для метода GET:

...
data: {'folio': folio,'status':'A'},
...

Для метода POST:

...
data: jQuery.param({'folio': folio,'status':'A'},
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
...
0 голосов
/ 31 октября 2018

Вам нужно добавить &, чтобы присоединиться к последнему ключу => значение

data: 'folio=' + folio + '&status=A',

Согласно моему комментарию, переменная, переданная в onclick, должна быть заключена в кавычки, иначе javascript воспринимает ее как переменную javascript и возвращает неопределенную ошибку переменной в консоли.

<button type="button" class="btn btn-primary" onclick="antenderOrden('<?php echo $folio; ?>')">Atender</button>

Также вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций

Быстрый старт для использования подготовленных заявлений

0 голосов
/ 31 октября 2018

код JavaScript

function atenderOrden(folio) {
$.ajax({
  type: 'post',
  url: '../panel/data.php',
  data: {
         folio : folio ,
          status : 'A'
        },
  success: function (data) 
  {
      location.reload();
  }
});
}

индекс

<button type="button" class="btn btn-primary" onclick="antenderOrden(<?php echo $folio;?>)">Atender</button>
0 голосов
/ 31 октября 2018

вам нужно отправить его как объект в ajax:

...
data: {'folio': folio,'status':'A'},
...

и обновите вашу кнопку, чтобы отобразить переменную php в html.

<button type="button" class="btn btn-primary" onclick="antenderOrden('<?=$folio;?>')">Atender</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...