Я создаю приложение Vue, в котором размещаю публикацию на PHP с помощью Axios. Итак, что у меня есть:
methods: {
onSubmit () {
axios.post('/wp-content/themes/bones/library/jobsResponse.php',{region: Chicago, jobType: Direct Hire}, {headers: {'X-Requested-With': 'XMLHttpRequest', 'Content-type': 'application/x-www-form-urlencoded'}})
.then(function(response){
console.info(response)
})
.catch(function(error){console.info(error)})
},
}
Что делает этот метод, так это то, что при запуске функции onSubmit он будет использовать Axios для POST в созданный мной файл PHP с именем jobsResponse.php. Публикуемые данные: «регион: регион Чикаго, jobType: Direct Hire».
Затем в этом файле PHP jobsResponse.php у меня есть:
<?php
$_POST = json_decode(file_get_contents('php://input'), true);
$region = $_POST['region'];
$jobType = $_POST['jobType'];
echo $region;
echo $jobType;
echo ' this is the posted data content';
?>
Итак, это получение опубликованных данных из Vue с помощью Axios. В Axios я запускаю console.info ответа, и когда я проверяю журнал консоли, он показывает мне данные, которые я отправил в jobsResponse.php

Как вы можете видеть на изображении выше, данные из моего приложения Vue были отправлены в файл jobsResponse.php. Так что все в порядке. Теперь мне нужно взять данные, которые я разместил в файле jobsResponse.php, и использовать их в моем приложении Vue.
Итак, в настоящее время в моем приложении Vue я получаю объект JSON с использованием PHP следующим образом:
<?php echo getBhQuery('search','JobOrder','isOpen:true','id,title,categories,dateAdded,externalCategoryID,employmentType,customText12', null, 200, '-dateAdded');?>
Я хочу использовать опубликованные данные Axios в этом запросе PHP. Поэтому мне нужно было бы взять эти опубликованные данные и вставить в этот PHP каким-то образом, например:
<?php echo getBhQuery('search','JobOrder','isOpen:true AND customText12:"'.$region.'"','id,title,categories,dateAdded,externalCategoryID,employmentType,customText12'); ?>
Добавление переменной $ region в запрос PHP отфильтрует объект JSON, чтобы получить только те сообщения о вакансиях, для которых регион имеет значение, равное значению этой переменной.
Итак, у меня есть необходимая публикация данных, и это хорошо. Я просто не уверен, как взять эти данные и использовать их для генерации нового объекта JSON на лету, например, jaxing его.
@EdCottrell Я действительно пытаюсь сделать приложение Vue, которое извлекает объект JSON из getBhQuery. Я хочу обновить это данными, введенными пользователем. Поэтому, если пользователь выбирает регион Чикаго в качестве примера в раскрывающемся списке выбора, я хочу опубликовать эти данные с помощью Axios в файле jobsResponse.php. Я просто ищу способ взять вводимые пользователем данные, опубликовать их с помощью Axios, а затем обновить getBhQuery этими данными, чтобы получить новый объект JSON с дополнительными параметрами.
$_POST не следует так использовать - я бы сделал что-то подобное, если вы используете PHP 7.x -> $post = file_get_contents('php://input') ?? $_POST;$post = json_decode($post, true);


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Что ж, $_POST - суперглобальный, поэтому я бы не стал его перезаписывать, поскольку они обрабатываются PHP автоматически и лучше не трогать.
Как уже упоминалось, $post = file_get_contents('php://input') ?? $_POST; примет входящий запрос POST и назначит его переменной $post. Затем, как только вы его проанализируете: $post = json_decode($post, true);, он проанализирует строку JSON в связанный массив.
Затем получите такие переменные, как вы упомянули, $region и $jobType.
Затем вы должны включить их в свой запрос к базе данных или, если вы не делаете это производство и можете иметь фиксированные данные: иметь статический текстовый файл или сохранить список заданий в переменной.
// get the incoming POST data
$post = file_get_contents('php://input') ?? $_POST;
// decode the JSON data
$post = json_decode($post, true);
// assign the needed data from the POST object
$region = $post['region'];
$jobType = $post['jobType'];
// define how you want to filter the data
function $sortJobs($job) use ($region, $jobType)
{
return ($job['region'] == $region) && ($job['type'] == $jobType);
}
// get your jobs data
$jobs = [[ 'type' => 'x', 'region' => 'minneapolis', 'name' => 'developer'], ['type' => 'y', 'region' => 'chicago', 'name' => 'secretary']];
// filter the jobs data
$filteredJobs = array_filter($jobs, "sortJobs");
// return the filtered data
http_response_code(200);
echo json_encode($filteredJobs);
Вы просто ищете
json_encode()? Если нет, я не уверен, что понимаю вопрос.