javascript - 尝试使用php函数生成的随机值自动生成QR码

标签 javascript php html

嗨,这是我的代码,当您键入文本时,它会转换为二维码,但我想让它自动运行。我有一个生成随机数的 php 函数,因此不应输入文本,而是应由该函数的值生成 qrcode。

enter image description here

这是我的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。

关于javascript - 尝试使用php函数生成的随机值自动生成QR码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41329974/

相关文章:

javascript - 这个函数怎么会返回未定义的?

javascript - 在使用提示请求用户输入之前加载 html。

javascript - 使用动态数据重新加载 bootstrap3 模态

java - 如何在php中应用静态类

php - 找不到 Laravel 5.1 View

java - 我如何隐藏 f :selectItem tag under h:selectOneRadio

php - 如何从mysql获取未读消息

jquery - 应用于父 div 的框阴影会切断 IE 中的子 div

javascript - 检测元素是否可见(不使用 jQuery)

javascript - 没有使用 HTML 表格时,如何使用 javascript 从 HTML 内容在 Excel 中创建表格?