我正在创建一个可与串口配合使用的网页。我现在遇到一个问题,它只在完成PHP过程后加载。以下是代码。
<html>
<body>
div class="container">
<div id="container">
<div id="navigation">
<h1 style="text-align:center; color:#00B4CC;">Pharmacy Counter</h1>
</div>
<div id="box" style="border: 1px solid #00B4CC; text-align:center;">
<form style="padding-top: 20px;">
<fieldset>
<h4>Patient Details</h4>
<h4>Name:</h4>
<h4>DOB:</h4>
<h4>Address:</h4>
</fieldset>
</form>
</div>
<?php
$portName = 'com9:';
$baudRate = 57600;
$bits = 8;
$spotBit = 1;
require_once("dbconn.php");
include("arduino.php");
$db = getConnection();
function echoFlush($string)
{
echo $string . "<br>";
flush();
ob_flush();
}
if(!extension_loaded('dio'))
{
//dl('php_dio.dll');
echoFlush( "PHP Direct IO does not appear to be installed for more info see: http://www.php.net/manual/en/book.dio.php" );
exit;
}
try
{
//the serial port resource
$bbSerialPort;
//echoFlush( "Connecting to serial port: {$portName}" );
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
{
echo "hi Windows\n";
//dio_close($bbSerialPort);
//$bbSerialPort = dio_open($portName, O_RDWR);
exec("mode {$portName} baud={$baudRate} data={$bits} stop={$spotBit} parity=n xon=off to=on");
$bbSerialPort = dio_open($portName, O_RDWR);
// dio_open($portName, O_RDWR);
echo '<br>'.'successfull exec'.'</br>';
}
if(!$bbSerialPort)
{
echoFlush( "Could not open Serial port {$portName} ");
exit;
}
$a=0;
while(($a++)<100){
dio_read($bbSerialPort);
}
?>
</body>
</html>
这是PHP和html的代码。现在的问题是运行php脚本后的布局加载。我不知道为什么会这样。
答案 0 :(得分:0)
Apache立即呈现整个PHP文件,一个解决方案是让你对另一个连接到串口的页面进行AJAX调用。
可以通过这种方式调用ajax(需要jQuery):
$(document).ready(function(){
$.ajax({
url: '...',
success: function(response) {
$('#ajaxReciever').html(response);
}
});
});
你的html页面上唯一需要的是一个带有ID ajaxReciever的容器(它首先可以有一个很好的字体真棒旋转器):)