Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] onBlur event falsch ausgelöst

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] onBlur event falsch ausgelöst

    hey ho,
    mein Problem ist für die meisten bestimmt eine banalität, ich beiße mir jedoch grade daran die zähne aus
    und zwar habe ich ein script geschrieben das zur Online remotsteuerung von Öfen dient, soweit so gut, daten auslesen, daten senden, aktualisieren, alles funktioniert, nun gibt es aber noch grenzwerte, wie z.b. das man den ofen von aussen nicht zu hoch einstellen kann usw. deshalb möchte ich die geänderten werte onChange oder onBlur überprüfen leider schmeißt der browser mir jedoch nicht die alertbox raus, sondern lediglich den scriptquellcode wenn ich mir den seitenquellcode anzeigen lasse
    mein scipt:

    PHP-Code:
    <!DOCTYPE HTML>
    <head>
        <title>online-oven-Management</title>
        <script type="text/javascript" language="javascript">
            function cecktemp(){
                var tocheck=document.oven.tartemp.value;
                if(tocheck>85){
                    alert("temp to high !!! It has to be between -40 and 85 !!!");
                }
                if(tocheck<-40){
                    alert("temp to high !!! It has to be between -40 and 85 !!!");
                }
            }
        </script>
    </head>
    <?php
    $debug
    =1;
    $maxtemp=(real)85;
    $mintemp=(real)-40;
    $maxhum=(real)100;
    $minhum=(real)0;
    $maxfan=(real)100;
    $minfan=(real)0;
    //$IP=gethostname();
    $IP="de-oven-02";
    $hiddenIP=$IP;
    $buff="";
    $alertform="";
    $cel="[&deg;C]";
    $per="[%]";
    $newtartempstr="";
    $newtarhumstr="";
    $newtarfanstr="";
    if(
    $debug===1){
        
    ini_set('display_errors',1);
        
    error_reporting(-1);
        echo 
    "first IP: $IP <br>";
    }
    function 
    readOven($IP$debug){
        if(
    $debug===1){
            echo 
    "readOven IP: $IP <br>";
        }
        
    $con=fsockopen($IP2049$errno$errstr);
        if(
    $con){
            
    fputs($con"\$01I\r");
            
    $stream=stream_get_contents($con,131,0);
            if(
    $debug===1){echo "debug readOven: $stream <br>";}
            
    fclose($con);
        }else{
            echo 
    $errno " ( " $errstr " ) ";
            
    $stream="false";
        }
        return 
    $stream;
    }
    function 
    sendOven($newtemp$newhum$newfan$buff$IP$debug){
        
    $stream=explode(" "$buff);
        
    $sendstring=$newtemp " " $newhum " " $newfan " " $stream[8] . " " $stream[9] . " " $stream[10] . " " $stream[11] . " " $stream[14];
        if (
    $debug===1){
            echo 
    "debug sendOven IP: $IP<br>";
            echo 
    "debug sendOven sendstring: $sendstring<br>";
            echo 
    "debug sendOven buff: $buff <br>";
            for(
    $i=0;$i<=14;$i++){
                echo 
    "debug sendOven stream[$i]: "$stream[$i] . "<br>";
            }
        }
        if(
    $debug===0){
            
    $con=fsockopen($IP2049$errno$errstr);
            if(
    $con){
                
    fputs($con"\$01E $sendstring\r");
                
    fclose($con);
            }else{
                echo 
    $errno " ( " $errstr " ) <br>";
            }
        }
    }
    function 
    getFormat($value$debug){
        
    $newform=sprintf("%1$06.1f"$value);
        if (
    $debug===1){
            echo 
    "debug newform: $newform <br> var_dump(newform): ";
            
    var_dump($newform);
            echo 
    "<br>";
        }
        return 
    $newform;
    }
    if(
    $_SERVER['REQUEST_METHOD']=="POST"){
        if((
    $_POST['IP'])!=($_POST['hiddenIP'])){
            
    $IP=($_POST['IP']);
            
    $hiddenIP=($_POST['IP']);
            
    $alertform="<tr><td colspan=4>If you change Oven<br>you have to resubmit the values<br>which you want to change</td></tr>";
        }
        else{
            
    $IP=($_POST['IP']);
            
    $hiddenIP=($_POST['IP']);
            
    $buff=readOven($IP$debug);
            
    $newtartemp=(real)($_POST['tartemp']);
            
    $newtarhum=(real)($_POST['tarhum']);
            
    $newtarfan=(real)($_POST['tarfan']);
            
    $newtartempstr=getFormat($newtartemp$debug);
            
    $newtarhumstr=getFormat($newtarhum$debug);
            
    $newtarfanstr=getFormat($newtarfan$debug);
            if(!empty(
    $_POST['power'])){
                
    $buff[99]="1";
            }
            if(!empty(
    $_POST['humcon'])){
                
    $buff[100]="1";
            }
            if(!empty(
    $_POST['condprot'])){
                
    $buff[101]="1";
            }
            
    /*if(empty($_POST['power')){
                $buff[99]="0";
            }
            if(empty($_POST['humcon')){
                $buff[100]="0";
            }
            if(empty($_POST['condprot')){
                $buff[101]="0";
            }*/
            
    sendOven($newtartempstr$newtarhumstr$newtarfanstr$buff$IP$debug);
        }
    }
    $changetemp"onBlur=\"checktemp()\"";
    $buff=readOven($IP$debug);
    $tartemp=(real)substr($buff0,6);
    $curtemp=(real)substr($buff,7,6);
    $tarhum=(real)substr($buff,14,6);
    $curhum=(real)substr($buff,21,6);
    $tarfan=(real)substr($buff,28,6);
    $curfan=(real)substr($buff,35,6);
    $power=(int)substr($buff,99,1);
    $humcon=(int)substr($buff,100,1);
    $condprot=(int)substr($buff,101,1);
    $reload="onclick=\"document.location=\'ovenmanagementv0_3.php\'\"";
    $checked='checked="checked"';
    $powercheck=($power===1) ? $checked"";
    $humcheck=($humcon===1) ? $checked"";
    $condcheck=($condprot===1) ? $checked"";
    echo <<< BODY
    <body>
        <p align="center"><span style="color:#00FF00">ONLINE-OVEN-MANAMENT</span></p>
        <form method="POST" name="oven" action="ovenmanagementv0_3.php" align="center">
            <table boarder=0 align="center">
                <tr>
                    <td>Hostname</td>
                    <td colspan=3 align="center"><input name="IP" size=3 value=
    $IP></td>
                </tr>
                <tr>
                    <td colspan=4 align="center"><input type="hidden" name="hiddenIP" value=
    $IP></td>
                </tr>
                <tr>
                    <td></td>
                    <td></td>
                    <td>Target</td>
                    <td>Current</td>
                </tr>
                <tr>
                    <td>Temp</td>
                    <td>
    $cel</td>
                    <td><input name="tartemp" size=1 value=
    $tartemp $changetemp></td>
                    <td>
    $curtemp</td>
                </tr>
                <tr>
                    <td>Humidity</td>
                    <td>
    $per</td>
                    <td><input name="tarhum" size=1 value=
    $tarhum></td>
                    <td>
    $curhum</td>
                </tr>
                <tr>
                    <td>Fan</td>
                    <td>
    $per</td>
                    <td><input name="tarfan" size=1 value=
    $tarfan></td>
                    <td>
    $curfan</td>
                </tr>
                <tr>
                    <td>Power</td>
                    <td><input type="checkbox" name="power" 
    $powercheck></td>
                </tr>
                <tr>
                    <td>Humidity Control</td>
                    <td><input type="checkbox" name="humcon" 
    $humcheck></td>
                </tr>
                <tr>
                    <td>Condensation Prot.</td>
                    <td><input type="checkbox" name="condprot" 
    $condcheck></td>
                </tr>
                <tr>
                    <td colspan=2><input type="submit" name="submit" value="Submit"></td>
                    <td><input type="button" name="reload" value="Refresh" 
    $reload></td>
                    <td><input type="reset" name="reset" value="RESET"></td>
                </tr>
                
    $alertform
            </table>
        </form>
    </body>
    BODY;
    ?>
    und hier der quelltext aus dem browser

    Code:
    <!DOCTYPE HTML>
    <head>
    	<title>online-oven-Management</title>
    	<script type="text/javascript" language="javascript">
    		function cecktemp(){
    			var tocheck=document.oven.tartemp.value;
    			if(tocheck>85){
    				alert("temp to high !!! It has to be between -40 and 85 !!!");
    			}
    			if(tocheck<-40){
    				alert("temp to high !!! It has to be between -40 and 85 !!!");
    			}
    		}
    	</script>
    </head>
    first IP: de-oven-02 <br>readOven IP: de-oven-02 <br>debug readOven: 0025.0 0024.8 0000.0 0000.0 0100.0 0100.0 0000.0 0000.0 0000.0 0000.0 0000.0 0000.0 0000.0 0000.0 00010000010000000000000000000000
     <br><body>
    	<p align="center"><span style="color:#00FF00">NVIDIA-ONLINE-OVEN-MANAMENT</span></p>
    	<form method="POST" name="oven" action="ovenmanagementv0_3.php" align="center">
    		<table boarder=0 align="center">
    			<tr>
    				<td>Hostname</td>
    				<td colspan=3 align="center"><input name="IP" size=3 value=de-oven-02></td>
    			</tr>
    			<tr>
    				<td colspan=4 align="center"><input type="hidden" name="hiddenIP" value=de-oven-02></td>
    			</tr>
    			<tr>
    				<td></td>
    				<td></td>
    				<td>Target</td>
    				<td>Current</td>
    			</tr>
    			<tr>
    				<td>Temp</td>
    				<td>[&deg;C]</td>
    				<td><input name="tartemp" size=1 value=25 onBlur="checktemp()"></td>
    				<td>24.8</td>
    			</tr>
    			<tr>
    				<td>Humidity</td>
    				<td>[%]</td>
    				<td><input name="tarhum" size=1 value=0></td>
    				<td>0</td>
    			</tr>
    			<tr>
    				<td>Fan</td>
    				<td>[%]</td>
    				<td><input name="tarfan" size=1 value=100></td>
    				<td>100</td>
    			</tr>
    			<tr>
    				<td>Power</td>
    				<td><input type="checkbox" name="power" ></td>
    			</tr>
    			<tr>
    				<td>Humidity Control</td>
    				<td><input type="checkbox" name="humcon" ></td>
    			</tr>
    			<tr>
    				<td>Condensation Prot.</td>
    				<td><input type="checkbox" name="condprot" checked="checked"></td>
    			</tr>
    			<tr>
    				<td colspan=2><input type="submit" name="submit" value="Submit"></td>
    				<td><input type="button" name="reload" value="Refresh" onclick="document.location=\'ovenmanagementv0_3.php\'"></td>
    				<td><input type="reset" name="reset" value="RESET"></td>
    			</tr>
    			
    		</table>
    	</form>
    </body>


  • #2
    du rufst "checktemp()" auf, deine Funktion heißt aber "cecktemp()"

    ich würde den Wert beim Funktionsaufruf gleich mit übergeben, dann muss nicht erst noch in der Funktion gesucht werden

    PHP-Code:
        <script type="text/javascript" language="javascript">
            function 
    checktemp(tocheck){
                if(
    tocheck>85){
                    
    alert("temp too high !!! It has to be between -40 and 85 !!!");
                }
                if(
    tocheck<-40){
                    
    alert("temp too low!!! It has to be between -40 and 85 !!!");
                }
            }
        
    </script>
        <input name="tartemp" size=1 value=25 onBlur="checktemp(this.value)"> 
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      ahhh x__x ich könnte mich grade selber schlagen das ich den fehler nich selber gesehen habe @_@

      danke jetzt funktionierts so wie es soll

      Kommentar

      Lädt...
      X