Публикация данных в PHP с помощью Axios

Я создаю приложение 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 Публикация данных в PHP с помощью Axios

Как вы можете видеть на изображении выше, данные из моего приложения 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 его.

Вы просто ищете json_encode()? Если нет, я не уверен, что понимаю вопрос.

elixenide 08.11.2018 15:36

@EdCottrell Я действительно пытаюсь сделать приложение Vue, которое извлекает объект JSON из getBhQuery. Я хочу обновить это данными, введенными пользователем. Поэтому, если пользователь выбирает регион Чикаго в качестве примера в раскрывающемся списке выбора, я хочу опубликовать эти данные с помощью Axios в файле jobsResponse.php. Я просто ищу способ взять вводимые пользователем данные, опубликовать их с помощью Axios, а затем обновить getBhQuery этими данными, чтобы получить новый объект JSON с дополнительными параметрами.

user9664977 08.11.2018 15:43
$_POST не следует так использовать - я бы сделал что-то подобное, если вы используете PHP 7.x -> $post = file_get_contents('php://input') ?? $_POST;$post = json_decode($post, true);
Shaun Bebbers 08.11.2018 18:16
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
3 296
1

Ответы 1

Что ж, $_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);

Другие вопросы по теме