将 <input v-for> 传递给 php

Posted

技术标签:

【中文标题】将 <input v-for> 传递给 php【英文标题】:Passing <input v-for> to php 【发布时间】:2019-04-26 14:50:12 【问题描述】:

我正在尝试使用 Vue.js 和 instascan 制作二维码扫描仪。我已经完成了扫描部分。现在我被困在这个过程中,我必须使用 Ajax 请求从 mysql 检索数据。我似乎无法从输入表单中检索数据。

这是我的 html 代码:

    <form id="cont_disp" method="post">
    <label class="disptext" style="margin-left: 41%;">Load user credits</label>

    <div class="form-group" id="app">
        <input v-for="scan in scans" :key="scan.date" hidden :title="scan.content" class="form-control" id="qr_user" name="qr_user" placeholder="Scan User QR Code":value="scan.content" style="width: 15%; font-size: 20px; left: 44%; position: absolute; top: 30%; border: 0; background: transparent;">
    </div>
    <div class="video-container">
        <video id="preview"></video>
    </div>


    <div class="content-display">

            <label class="disptext" style="font-size: 20px;">Username: </label>
            <input type="button" name="" class="login" value="Search" style="margin-left: 70%; font-size: 20px;" id="qr_search">
            <br /><br />
            <label class="disptext" style="font-size: 20px;">Current Balance: </label><input type="text" class="disptext" id="userbal" style="font-size: 20px; left: 44%;"><br /><br />
            <label class="disptext" style="font-size: 20px;">Enter credit amount: </label><input type="number" name="loadcred" id="loadcred" style="margin-left: 28%;" required placeholder="Credit amount"><br /><br />
            <input type="submit" name="credsub" id="credsub" value="Load Credits" class="login" style="width: 50%; margin-top: 3%;">

    </div>
</form>

这里是 php 查询。

   include 'dbcon.php';
   $qr_user = $_POST['qr_user'];
   $query = mysqli_query($con, "SELECT username, credits FROM useracc WHERE username='$qr_user'");
   $row = mysqli_fetch_array($query);
   echo json_encode($row);

还有 Ajax 请求:

  $("#qr_search").click(function()
    var qr_user = $("#qr_user").val();
    $.ajax(
        type: "post",
        url: "../Capstone/qrdata.php",
        data: formData = username:qr_user,
        success: function(data)
            // can't seem to do anything here since I can't fetch any data from php
        
    );
);

【问题讨论】:

【参考方案1】:

改变这个:

$qr_user = $_POST['qr_user'];

到:

$qr_user = $_POST['username'];

解决名称不匹配的问题。

【讨论】:

以上是关于将 <input v-for> 传递给 php的主要内容,如果未能解决你的问题,请参考以下文章

Vue - 将 v-for 索引从父组件传递到子组件

将事件和本地 vue 变量传递给绑定函数的惯用方式

V-for 带模板

如何将可观察值传递给@Input() Angular 4

将所有指令传递给组件的子元素

Vue.js - 将多个道具传递给 V-For 中的子级