2015-11-23 94 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) { 
    ... 
})