2015-11-23 95 views
1

我有一個簡單的輸入來獲取用戶的電子郵件,並且我想發送一個http post請求以將電子郵件保存在數據庫中。Vuejs - 檢索輸入值

這是 「形式」:

<input v-model="email" id="email" type="email" name="email" placeholder="Inser your email..."> 
<input id="submitButton" type="submit" value="Save" v-if="isValidEmail" v-on:click="save(email)"> 

這是Vue腳本:

new Vue({ 
     el: '#body', 
     data: { 
      email: '' 
     }, 
     computed: { 
      isValidEmail: function(){ 
       var re = /\[email protected]\S+\.\S+/; 
       return re.test(this.email); 
      } 
     }, 
     methods: { 
      save: function(passedEmail){ 

       this.$http.post('action.php', passedEmail, function (data) { 

        swal({ 
         title: data.title, 
         text: data.text, 
         timer: 5000, 
         type: data.type, 
         showConfirmButton: true 
        }); 

       }).error(function (data) { 
        swal({ 
         title: 'Errore', 
         text: 'Si è verificato un errore sconosciuto.', 
         timer: 5000, 
         type: 'error', 
         showConfirmButton: true 
        }); 

       }); 
      } 
     } 
    }); 

我怎樣才能得到我action.php文件的電子郵件的價值?
我嘗試了一個簡單的print_r($_POST),但它是空的,而passedEmail包含實際的電子郵件。

回答

0

最後我解決了。

的問題是,Vue的(至少在我的情況)發送數據請求的playload所以檢索所需使用的輸入:

$data = file_get_contents("php://input"); 
var_dump($data); 
0

你應該傳遞一個對象的數據,

this.$http.post('action.php', {email: passedEmail}, function (data) { 
    ... 
})