为什么在完成PHP过程后会加载网站布局

时间:2015-06-11 09:43:32

标签: php html serial-port

我正在创建一个可与串口配合使用的网页。我现在遇到一个问题,它只在完成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脚本后的布局加载。我不知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

Apache立即呈现整个PHP文件,一个解决方案是让你对另一个连接到串口的页面进行AJAX调用。

可以通过这种方式调用ajax(需要jQuery):

  $(document).ready(function(){
    $.ajax({
       url: '...',
       success: function(response) {
           $('#ajaxReciever').html(response);
       }
    });
});

你的html页面上唯一需要的是一个带有ID ajaxReciever的容器(它首先可以有一个很好的字体真棒旋转器):)