簡體   English   中英

嘗試通過使用PHP函數生成的隨機值使QR碼自動執行

[英]Trying to make the QR code automatic by using random value generated by a function from php

嗨,這是我的代碼工作正常,當您鍵入文本時,它將轉換為二維碼,但我想使其自動執行。 我有一個生成隨機數的php函數,因此,不要鍵入文本,而應通過該函數的值生成qrcode。

在此處輸入圖片說明

這是我的html頁面代碼:

    <!DOCTYPE html>
<body>
  <input id="text" type="text" value="http" style="width:80%" /><br />
<div id="qrcode"></div>
  <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://davidshimjs.github.com/qrcodejs/qrcode.min.js'></script>

    <script src="js/index.js"></script>

</body>
</html>

這是我的javascript函數:

var qrcode = new QRCode("qrcode");

function makeCode () {      
    var elText = <?php echo random_str(6); ?> ;

    if (!elText.value) {
        alert("Input a text");
        elText.focus();
        return;
    }

    qrcode.makeCode(elText.value);

}

makeCode();

$("#text").
    on("blur", function () {
        makeCode();
    }).
    on("keydown", function (e) {
        if (e.keyCode == 13) {
            makeCode();
        }
    });

這是我要實現的php函數,以便生成一個隨機數並在此基礎上形成qrcode

<?php

function random_str($length, $keyspace = '0123456789')
{
    $str = '';
    $max = mb_strlen($keyspace, '8bit') - 1;
    for ($i = 0; $i < $length; ++$i) {
        $str .= $keyspace[random_int(0, $max)];
    }
  return $str;
}

?>

使用基於輸入的版本時,對makeCode()函數進行了編碼,以從輸入框中提取QRCode的值。 既然您正在使用文字值,則需要修改makeCode()關於源編號的工作方式-現在是javascript文字值,而不是控件。

function makeCode () {      
    var elText = "<?php echo random_str(6); ?>" ; // note quotes around random no.

    if (elText.length === 0) { // is the random string zero length 
        alert("Random number is blank - weird !");
        return;
    }

    qrcode.makeCode(elText);

}

php隨機數周圍的引號將保護您免受返回空白的風險。 我不知道這種可能性有多大,但是如果確實發生了,那么JS將會失敗。 由於沒有數字運算,我們可以將其視為字符串。 在這種情況下,我們可以測試其長度,然后從中確定是否需要制作QRCode。

這取決於您的html呈現方式

1-如果它來自php並且您此函數位於同一文件中或可以從該php文件中調用,則可以執行以下操作:

<script>
var qrcode = new QRCode("qrcode");
qrcode.makeCode('<?php echo random_str(3); ?>');
</script>

2-如果它是一個html文件,則無法調用該函數,則可以使用ajax來調用php文件,該文件會為您提供random值並使用它

暫無
暫無

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

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