Ho corretto:
<html>
<head>
</head>
<body>
<form action="cgi-bin/led_on.cgi" method="post" target="forms_target">
<input type="submit" value="Led ON"/>
</form>
<form action="cgi-bin/led_off.cgi" method="post" target="forms_target">
<input type="submit" value="Led OFF"/>
</form>
<iframe src="about:blank" name="forms_target" style="display:none"> </iframe>
</body>
</html>
ma il risultato è lo stesso, ottengo sempre la pagina Bad Gateway
Si
Inizialemente compare la pagina bianca con i due pulsanti...quando premo qualsiasi dei due spariscono i due pulsanti e comapare la scritta Bad Gateway
scusa avevo commesso un errore nel caricamento del file html che quindi era rimasto quello precedente e funziona perfettamente grazie mille
invece utilizzando gli eventi dei button è possibile fare in modo che quando premo chiami il CGI 1 e quando rilascio chiami il CGI 2? tutto in uno stesso button?
Dai un'occhiata a questo
Lo script gestisce illimitati pulsanti, basterà aggiungerli all'HTML sulla falsa riga dei due inseriti, inserendo i vari "data" per il testo da mostrare su ON e su OFF e i rispettivi path ai CGI.codice:<!doctype html> <html> <head> <meta charset="utf-8"> <title>CGI</title> <style type="text/css"> .switch{ font-size:14px; font-weight:bold; min-width:120px; text-align:left; padding:4px; } .switch:before{ content:""; width:14px; height:14px; display:inline-block; border:1px solid #333; border-radius:7px; margin-right:5px; box-shadow:2px 2px 4px #fff inset; } .on:before{ background:green; } .off:before{ background:red; } </style> <script src="http://ajax.googleapis.com/ajax/libs...n.js"></script> <script type="text/javascript"> $(function(){ $('.switch').click(function(){ var t=$(this), cgi_path; if(t.hasClass('on')){ t.removeClass('on').addClass('off').text(t.data('text_off')); cgi_path=t.data('url_off'); }else{ t.removeClass('off').addClass('on').text(t.data('text_on')); cgi_path=t.data('url_on'); } $('iframe[name="forms_target"]').attr('src',cgi_path); }); }); </script> </head> <body> <!-- Interruttore Led, inizialmente acceso (class="on") --> <button class="switch on" data-url_on="cgi-bin/led_on.cgi" data-url_off="cgi-bin/led_off.cgi" data-text_on="Led ON" data-text_off="Led OFF">Led ON</button> <br> <!-- Interruttore Funzione X, inizialmente spento (class="off") --> <button class="switch off" data-url_on="cgi-bin/function_x_on.cgi" data-url_off="cgi-bin/function_x_off.cgi" data-text_on="Function X ON" data-text_off="Function X OFF">Function X OFF</button> <iframe src="about:blank" name="forms_target" style="display:none"> </iframe> </body> </html>
![]()
come ti ho detto sono alle prime armi con questo linguaggio, potresti darmi una spiegazione piu terra terra riguardo al codice qui sopra?![]()
Mettiamo che devi aggiungere un interruttore, ad esempio, per un condizionatore d'aria.
Ti basterà aggiungere un button:
e creare i due file cgi-bin/climatizzatore_on.cgi e cgi-bin/climatizzatore_off.cgi che devono essere chiamati (dentro l'iframe nascosto) quando viene pigiato il pulsante per accendere o spegnere il climatizzatore.codice:<!-- Interruttore Climatizzatore--> <button class="switch off" data-url_on="cgi-bin/climatizzatore_on.cgi" data-url_off="cgi-bin/climatizzatore_off.cgi" data-text_on="Climatizzatore ON" data-text_off="Climatizzatore OFF">Climatizzatore OFF</button>
data-text_on e data-text_off servono unicamente per cambiare il testo dentro il button a seconda dello stato del climatizzatore, quando il pulsante è nello stato di off viene mostrato il testo dentro data-text_off (Climatizzatore OFF) e viceversa, quando il pulsante è nello stato di on (spia verde) viene mostrato il testo dentro data-text_on (Climatizzatore ON)
Credo sembri più complicato di quello che è in realtà.
Ok ma in questo caso premo una volta è si accende e premo una seconda volta è si spegne giusto? Io vorrei che quando premo chiami un CGI e quando lo rilascio un altro.
Come dovrei fare?