簡體   English   中英

將 JavaScript 變量轉換為 PHP 變量

[英]Convert a JavaScript variable to a PHP variable

我正在學習 HTML JS CSS 和 PHP,但我遇到了一個大問題。

getPosForLieferschein()$input變量應該是用戶輸入,但我發現沒有辦法將 JS 變量轉換為 PHP。 用戶應將合約編號寫入輸入字段,合約頭寸 - getPosForLieferschein() - 顯示在下表中。 應該重新加載頁面,以防萬一沒有其他方法可以工作。 我知道代碼很糟糕!

頭:

<?php include 'connection_manager.php'; $tags = getLieferscheine();?>
<script type="text/javascript">

var availableTags = "<?php echo $tags;?>"

$(function () {
    var values = availableTags.split(",");
    $('.select').autocomplete({
        source: values
    });
});

function generate() {
    var eingabe = document.getElementById('input').value;
    var position = "<?php $positionen = getPosForLieferschein($input); echo $positionen; ?>";
    var arr = position.split(','), contract = arr[0], pos = arr[1], article = arr[2], name = arr[3], amount = arr[4], unit = arr[5];
    var table = document.getElementById("table1body");
    var row = table.insertRow(0);
    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(2);
    var cell4 = row.insertCell(2);
    var cell5 = row.insertCell(2);
    var cell6 = row.insertCell(2);
    var i = 60;
    var a = document.getElementById("input");
    if ((a.value == eingabe)) {
        while (i > 0) {
            cell1.innerHTML = contract;
            cell2.innerHTML = pos;
            cell3.innerHTML = unit;
            cell4.innerHTML = amount;
            cell5.innerHTML = name;
            cell6.innerHTML = article;
            i = i - 60;
        }
    }
    else {
        swal({
            title: "Fehler!",
            text: "Bitte geben Sie eine gültige Auftragsnummer ein!",
            type: "error",
            confirmButtonText: "Ok",
            confirmButtonColor: "#FF0000"
        });
    }
};

$(document).ready(function () {
    $("#details").click(function () {
        $("#uebertragen").removeAttr("disabled");
        $("#details").attr("disabled", "disabled");
    })
    $("#uebertragen").click(function () {
        $("#details").removeAttr("disabled");
        $("#uebertragen").attr("disabled", "disabled");
    })
})

$(document).ready(function () {
    $("#uebertragen").click(function () {
        $("td").remove()
    })
})
</script>

身體:

<body>
<center>
<img style="position:relative;left:25px;" src="quehenberger.jpg" height="50px" width="240px" alt="quehenberger logo" align="left"/>
<img style="position:relative;right:25px;" src="bilton.png" height="50px" width="300px" alt="bilton logo" align="right"/>
<h1><b>QLog Eingabe</b></h1>
<hr/>

<div class="container">
    <div class="row">
           <form action="" method="get">
            <input id="input" type="text" style="width:50%;position:relative;left:14em;" value="" class="select form-control col-xs-1" Placeholder="Auftragsnummer"/>
            <button style="position:relative;left:18em;" id="details" class="col-xs-1 btn btn-success" onclick="generate();">Pr&uuml;fen</button>
           </form>
    </div>
    </p>
    <button style="width:100px;position:relative;left:58.65em;" id="uebertragen" disabled="disabled" class="col-xs-1 btn btn-danger">&Uuml;bertragen</button>
</div>
<table class="table">
        <thead>
          <tr>
            <th>Auftragsnummer</th>
            <th>Positions Nummer</th>
            <th>Artikel Nummer</th>
            <th>Artikel Bezeichnung</th>
            <th>Artikel Menge</th>
            <th>Einheit</th>
          </tr>
        </thead>
        <tbody id="table1body">
        </tbody>
</table>
</center>
</body>
</html>

你不能只轉換變量。 這是不可能的 還有其他選項可以在不重新加載的情況下更改頁面:

  1. 每次用戶輸入字段的內容更改時,您都可以發出 ajax 請求。 在控制器(服務器端)中執行您需要執行的所有計算,然后返回結果並將其顯示在同一頁面中。
  2. 如果您使用 Yii2 框架,還有另一種選擇。 但這需要您對函數的結構進行一些更改。 在 Yii2 中,您可以在視圖文件中編寫 JS 並使用 PHP 變量的值。 這里有一些關於該功能的信息

據我了解,您沒有使用任何框架,因此我建議使用 ajax 請求並將計算出的值傳遞回頁面(選項 1)。

這是最終的代碼! 感謝各位大俠的幫助! :D`

<script type="text/javascript">

    var availableTags = "<?php echo $tags;?>"
    var currentTag = false;

    $(function(){
        var values = availableTags.split(",");
        $('.select').autocomplete({
            source: values,
            select: function( event, ui ) {
                //$('#input').val()
                //console.log(ui.item.value);
                getAuftrag(ui.item.value);
            }
        });
    });

    function sendAuftrag() {
        if (currentTag !== false) {
            $.ajax({
            method: "GET",
            url: "save.php",
            data: {
                q : currentTag
                },
            dataType: "html",
            success: function(data) {
                $("#tableBody").html("");
                $("#uebertragen").attr("disabled", "disabled");

                swal({title: "Erfolg!",
                    text: "Auftragsnummer " + currentTag + " erfolgreich übermittelt!",
                    type: "success",
                    confirmButtonText: "Ok",
                    confirmButtonColor: "#FF0000"
                    });

                currentTag = false;
                }
            });
        }
    }

    function getAuftrag(str) {
        if (str == "") {
            document.getElementById("tableBody").innerHTML = "";
            currentTag = false;
            return;
        }

        var values = availableTags.split(",");

        if (values.indexOf(str) === -1) {
            currentTag = false;
            swal({title: "Fehler!",
                text: "Bitte geben Sie eine gültige Auftragsnummer ein!",
                type: "error",
                confirmButtonText: "Ok",
                confirmButtonColor: "#FF0000"
            });
        } else {
            $.ajax({
                method: "GET",
                url: "ajax.php",
                data: {
                    q : str
                    },
                dataType: "html",
                beforeSend: function(jqxhr) {
                    currentTag = str;
                    },
                success: function(data) {
                    $("#tableBody").html(data);

                    $("#uebertragen").removeAttr("disabled");
                    // console.log(data);
                    }
            });
        }
    }



    $(document).ready(function(){
        $("#uebertragen").click(function(){
            $("#uebertragen").attr("disabled", "disabled");
        })
})
</script>`

HTML:

`<body>
<center>
<img style="position:relative;left:25px;" src="quehenberger.jpg" height="50px" width="240px" alt="quehenberger logo" align="left"/>
<img style="position:relative;right:25px;" src="bilton.png" height="50px" width="300px" alt="bilton logo" align="right"/>
<h1><b>QLog Eingabe</b></h1>
<hr/>

<div class="container">
    <div class="row">
            <input id="input" style="width:50%;position:relative;left:14em;" class="select form-control col-xs-1" Placeholder="Auftragsnummer"/>

            <!-- <button style="position:relative;left:18em;" id="details" class="col-xs-1 btn btn-success" >Pr&uuml;fen</button> -->
            <button style="width:100px;position:relative;left:18em;" id="uebertragen" disabled="disabled" class="col-xs-1 btn btn-danger">&Uuml;bertragen</button>
    </div>
</div>

<div id="tableBody"><b></b></div>

<div style="background-color: #E6E6E6;height:40px;width:100%;" data-role="footer" data-tap-toggle="false" class="ics-footer">
    <p>Copyright IcoSense GmbH. All rights reserved.</p>
</div>
</center>
</body>
</html>`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM