2

这是我复制的代码。

Vue.component('v-select', VueSelect.VueSelect);

var app = new Vue({
  el: '#app',
  data: {
    lokasi_select: '',
    lokasi_id: '',
    lokasi_list: [{
        id_Location: 'LOC0001',
        nama_Location: 'Indonesia'
      },
      {
        id_Location: 'LOC0002',
        nama_Location: 'China'
      },
      {
        id_Location: 'LOC0003',
        nama_Location: 'America'
      },
    ],
  }
});
<div id='app' class="form-group my-5 mx-5">
  <form method='post' action='action.php'>
    <label for="lokasi_id" class="control-label required">
      <strong>Lokasi</strong></label>
    <v-select id='lokasi_id' label='nama_Location' v-model='lokasi_select' name="lokasi_select" :options="lokasi_list" placeholder='Ketik lokasi..'>
      <span slot="no-options">Lokasi tidak ditemukan.</span>
    </v-select>

    <p>What you selected: {{lokasi_select}}</p>
    <button>Submit</button>
  </form>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-select/2.5.1/vue-select.js"></script>

我想做的事

  1. 用户输入并选择值。
  2. lokasi_select成为一个对象并填充用户所选输入的值。
  3. 用户点击提交。移至action.php
  4. action.php检索值。

获取所选对象的值,在这种情况下,它lokasi_select会在另一个页面中检索它,注意这是一个通过 POST 方法的表单,它会加载到下一页。我没有使用 AJAX,因为我想在下一页重新验证用户输入。就像出示收据一样。

实际发生了什么

  1. 用户输入并选择值。
  2. lokasi_select成为一个对象并填充用户所选输入的值。
  3. 用户点击提交。移至action.php
  4. $_POST 返回一个 NULL 数组。

现在这就是我的action.php样子。

<?php
    var_dump($_POST) //Returns array(0) { }
?>

怎么可能做到这一点?我愿意接受替代方案。但不是 AJAX。它必须重新加载到下一页。另外,如果我不能传递一个对象,那么只有值id_Location是可以的。因为我很难找到如何让它传递给它id_Location

4

1 回答 1

4

通过参考这个问题,我认为您需要添加hidden如下输入。
我已经确认 PHP 可以通过此代码接收 post 值。

<div id='app' class="form-group my-5 mx-5">
  <form method='post' action='action.php'>
    <label for="lokasi_id" class="control-label required">
    <strong>Lokasi</strong></label>
    <v-select id='lokasi_id' label='nama_Location' v-model='lokasi_select' name="lokasi_select" :options="lokasi_list" placeholder='Ketik lokasi..'>
      <span slot="no-options">Lokasi tidak ditemukan.</span>
    </v-select>
    <input type="hidden" v-model="lokasi_select.id_Location" name="id_Location" />
    <input type="hidden" v-model="lokasi_select.nama_Location" name="nama_Location" />

    <p>What you selected: {{lokasi_select}}</p>
    <button>Submit</button>
  </form>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-select/2.5.1/vue-select.js"></script>
<?php
    // Returns like
    // "array(2) { ["id_Location"]=> string(7) "LOC0001" ["nama_Location"]=> string(9) "Indonesia" }"
    var_dump($_POST);
?>
于 2018-10-28T02:07:46.130 回答