私のPHPページ上の私のボタンのリフレッシュ状態なしで変更しようとしています。
JavaScriptコードで新しく、私の問題に対する解決策はAJAXリクエストを使用しています。PHPウェブサイトのAjax変更ボタン
だから私はこのでした:
function accendi(str) {
//controllo se id è vuoto
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
//altrimenti invio la richiesta
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
console.log(xmlhttp);
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
//manda la stringa alla pagina accendi.php
xmlhttp.open("GET","accendi.php?q="+str,true);
xmlhttp.send();
}
}
function spegni(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
console.log(xmlhttp);
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","spegni.php?q="+str,true);
xmlhttp.send();
}
}
<div class="container">
<section>
<header>
<h2 align="center"> Gestione luci </h2>
<br>
<br>
<?php
$fp=pfsockopen("192.168.1.100",23);
if (!$fp) {
echo("<script>alert('Dispositivo non collegato')</script>");
echo("<script>window.location = 'home.php';</script>");
}
else {
for ($x = 0; $x < $numrows; $x++) {
$resrow = mysqli_fetch_row($rest);
$id= $resrow[0];
$userT= $resrow[1];
$statusT = $resrow[2];
}
if($statusT==0){
echo "<form method=\"post\" onSubmit=\"accendi($id)\"><p align=center>
<br> Stato luci : Spente <img src=\"images/rosso.jpg\">
<input type=\"submit\" name=\"invio\" value=\"Accendi\">
</p></form>";
}
else if($statusT==1){
echo " <form method=\"post\" onSubmit=\"spegni($id)\"><p align=center><br>Stato luci : Accese <img src=\"images/verde.jpeg\"> <input type=\"submit\" name=\"invio\" value=\"Spegni\">
</p></form>";
}
そして、この(関数の1)、二つの異なるPHPのページに:
require_once('connection.php');
$q = intval($_GET['q']);
$sql= "UPDATE luciajax SET stato=1 where id='".$q."'";
if ($connection->connect_error) {
die("Connection failed: " . $connection ->connect_error);
}
//se connessione funziona accendo arduino
if ($connection ->query($sql) === TRUE) {
$fp=pfsockopen("192.168.1.100",23);
fputs($fp,"1");
fclose($fp);
}
else {
echo "Error updating record: " . $connection ->error;
}
$connection ->close();
をしかし、私のボタンは、多くの場合、うまく動作しません。ステータスが変わることはありませんが、データベースや他のPHPコードが正常に動作しています。
:
は
<script></script>
タグ内にこれを追加しますか? –あなたのJavascriptは、 ' 'タグに含まれていませんか? [** console **](https://webmasters.stackexchange.com/questions/8525/how-do-i-open-the-javascript-console-in-different-browser)にいくつかのエラーがある可能性があります。 –
いいえ@JayBlanchard –