VueJS Axios POST возвращает NULL при передаче переменной через страницы - PullRequest
0 голосов
/ 25 октября 2018

Я часами пытался понять это и перепроверить ответ StackOverflow.Пробное копирование тоже не сработало.

var app = new Vue({
  el: '#app',
  data: {
    jobtype_select: '',
    jobtype_list: [{
        id_JobType: 'JTY0001',
        name_JobType: 'Survey'
      },
      {
        id_JobType: 'JTY0002',
        name_JobType: 'Research'
      },
      {
        id_JobType: 'JTY0003',
        name_JobType: 'Maintenance'
      }
    ],
    woFormABCD: '',
    totallyRandom: 'Hello Heiayo'
  },

  methods: {
    recordTESTWo() {
      var form = new FormData();
      form.append('test', this.totallyRandom);
      axios.post('action.php',
          form
        )
        .then(function(response) {
          alert('Success!');
          console.log(response);
        })
        .catch(function(error) {
          console.log(error);
        });
    }
  }

});
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

<div id='app'>
  <form method="post" action="action.php" @submit.capture='recordTESTWo'>
    <div class="">
      <label for="jobtype_id" class="control-label required"><strong>Choose Job Type</strong></label>
      <div v-for='jobtype in jobtype_list'>
        <label class="">
                            <input  type="radio" 
                                    id= 'jobtype_id'
                                    v-model= 'jobtype_select'
                                    :value="jobtype.id_JobType"
                                    name='jobtype_select' 
                                    > 
                            {{jobtype.name_JobType}}
                        </label>
      </div>
      <p> This is : {{jobtype_select}}</p>
    </div>
    <div>
      <button>Submit</button>
    </div>
  </form>
</div>

Я хотел попытаться передать значение totallyRandom на следующую страницу.Что action.php.

<?php
    session_start();
    //$data = json_decode(file_get_contents("php://input"), TRUE);
    printf("This is GET: \r\n");
    var_dump($_GET);
    printf("This is POST: \n");
    var_dump($_POST);
?>

То, что я ожидаю увидеть, переменная totallyRandom передается action.php, поэтому я могу использовать ее на странице action.php.

Что я вижу, Кроме того, когда я захожу в action.php и выполняю var_dump, он возвращает NULL.Переключатель прошел, но это не Axios.Более подробную информацию можно запросить,

Picture

1 Ответ

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

Проблема в том, что ваш <form> отправляет нормально.Вот почему вы видите параметр jobtype_select POST вместо test.

. Эту проблему легко решить с помощью модификатора события .prevent вместо .capture

*.1011 *

К вашему сведению, .capture для ...

событие, нацеленное на внутренний элемент, обрабатывается здесь до его обработки этим элементом

Это относится к параметру useCapture, равному addEventListener(), тогда как .prevent вызывает preventDefault() для события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...