我正在为RFID阅读器制作一个网络界面并试图使其成为按钮,然后等待用户扫描卡并检索卡的UID。我正在考虑使用ajax来调用调用python脚本的php脚本,但它不会等待扫描卡。继承人ajax:
<script type = "text/javascript">
function scancard () {
$.ajax( { type : 'GET',
data : { },
url : 'scancard.php',
success: function (data) {
var card_id = document.getElementById('card_id');
card_id.value = data;
},
error: function (xhr) {
alert( "error");
}
});
}
</script>
按钮html:
<button onclick="scancard()">Scan Card</button>
使用简单的回显cmd进行测试,它会填充字段,但随后刷新页面,字段再次为空白。
我遇到的另一个问题是当我为php脚本调用python代码时输入:
<?php
exec('sudo python scancard.py', $output, $return);
echo $return;
?>
在执行echo命令之前,它不会等待python代码完成。 python代码中有一个while循环,它等待读取RFID卡然后返回uid代码。
# Lots of configuration and setup stuff above this...it works when run via command line
# Main loop to detect cards and read a block.
while True:
uid = pn532.read_passive_target()
if uid is None:
continue
else:
if not pn532.mifare_classic_authenticate_block(uid, 4, PN532.MIFARE_CMD_AUTH_B,
[0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]):
continue
uid = '0x{0}'.format(binascii.hexlify(uid))
sys.exit(uid)
我可能会以迂回的方式解决这个问题,所以如果有更好的方法,请告诉我