Попытка обновить PHP-запрос после публикации данных с помощью Axios в Vue App - PullRequest
0 голосов
/ 06 ноября 2018

Я получаю объект JSON по запросу PHP из службы BullHorn следующим образом:

<?php echo getBhQuery('search','JobOrder','isOpen:true','id,title,categories,dateAdded,externalCategoryID,employmentType,customText12', null, 10, '-dateAdded');?>

Однако для объекта JSON должна быть предусмотрена функция фильтрации на основе пользовательского ввода. Поэтому я создал входные данные в своем приложении Vue, которое захватывает пользовательское значение ввода, и я пытаюсь поместить это значение в PHP. Мой код Axios выглядит так:

         onSubmit () {

       axios.post('/wp-content/themes/bones/library/jobsResponse.php',{region: this.selectedLocation}, {headers: {'X-Requested-With': 'XMLHttpRequest', 'Content-type': 'application/x-www-form-urlencoded'}})
       .then(function(response){
         console.log(response)
       })
       .catch(function(error){console.log(error)})
}

Итак, когда мы нажимаем кнопку формы, запускается функция onSubmit (). Затем он использует Axios для публикации данных в файле jobsResponse.php. В настоящее время публикуемые данные

this.selectedLocation

То, что все это - переменная данных в моем приложении Vue, которая связана с раскрывающимся вводом, который может использовать пользователь.

Итак, в моем файле jobsResponse.php у меня есть:

$request_body = file_get_contents("php://input");
$data = json_decode($request_body, true);
$region = $data['region'];

Итак, он берет опубликованные данные и присваивает их переменной $ region. Моя самая большая проблема - обновить PHP-запрос, чтобы добавить фильтрацию. Чтобы отфильтровать запрос по региону, я бы отредактировал запрос примерно так:

<?php echo getBhQuery('search','JobOrder','isOpen:true AND region:"Chicago Region"','id,title,categories,dateAdded,externalCategoryID,employmentType,customText12'); ?>

Все, что было добавлено, это «И регион:« Регион Чикаго »», и он будет получать только рабочие места с регионом Чикаго. Таким образом, в моем приложении Vue есть выпадающий ввод, заполненный всеми регионами, по которым пользователь может фильтровать. Как только один из них выбран, я хочу взять эти данные и POST их с помощью Axios и обновить запрос PHP, чтобы добавить фильтр к ним.

Я бегал кругами, пытаясь заставить это работать, и ударил стену о том, что мне не хватает. Я полагаю, что пытаюсь просто выполнить Ajax-подобную функцию, но вместо этого использую сообщение Axios.

1 Ответ

0 голосов
/ 06 ноября 2018

Похоже, вы просто не объединяете эту переменную в строку. Все, что вам нужно сделать, это просто использовать эту переменную в вашей строке, которую вы передаете своей функции следующим образом:

<?php 
echo getBhQuery('search','JobOrder','isOpen:true AND region:"'. $region .'"','id,title,categories,dateAdded,externalCategoryID,employmentType,customText12'); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...