2014-01-17 4 views
2

그래서 가능한 한 자세하게 설명하려고합니다. 그래서 내가 생각하는 것을 이해할 수 있습니다.mysql 필드를 기반으로 div의 색상을 변경하십시오.

저는 주로 PHP로 작성된 작은 웹 응용 프로그램을 만들고 있습니다. 하나의 테이블에 mysql에 사용자 이름 필드, 암호 필드 및 "상태"필드가있는 하나의 행이 있습니다.

사용자 이름과 암호 필드가있는 웹 페이지 부분과 제출 버튼. 사용자 이름과 암호가 올 바르면 상태가 켜집니다. 이것은 당신이 계속해야하는 발전기를 대표하기로되어 있습니다.

나는 cronjob에 10 분마다 스크립트를 실행시켜 상태를 끈다. 이것은 약간의 경쟁을위한 것입니다. 우리는 발전기 사이트를 모니터링해야하고 발전기가 꺼지면 사용자 이름과 암호를 입력하고 다시 켜야합니다. 그래서 모든 것들이 기능합니다.

제 질문은 발전기가 켜져있을 때 작은 사각형을 녹색으로 표시하고 발전기가 꺼져 있으면 빨간색으로 변경하고 싶습니다. 페이지를 다시로드하지 않고도 작업을 수행 할 수 있기를 원합니다. 따라서 내가 페이지를 쳐다보고 상태를 바꾼다면 빨간색으로 바뀔 것입니다.

나는 AJAX를 들여다 보았다. (나는 내가 사용해야 할 것이라고 가정하고 있기 때문에) 그러나 이와 비슷한 것을 발견하지 못했다. 누구나 할 수 있다면 간단한 구문 예제로 어떻게 할 수 있는지 알려주시겠습니까? 도움말은

답변

2

HTML jQuery를

#generator-state { height: 100px; width: 100px;} 
#generator-state.on { background: green; } 
#generator-state.off { background: red; } 

가 서버에 AJAX 호출을 확인

<div id="generator-state"></div> 

CSS ... 감사합니다. 생성자 상태 (data.state)에 대해 반환 된 데이터 개체를 구문 분석하고 해당 값을 사용하여 #generator-state 요소에 클래스를 설정합니다.

db.php은 MySQL 데이터베이스를 쿼리합니다.

setInterval()은 10 분마다 AJAX를 실행합니다.

function fetchState() { 
    $.get('/path/to/db.php', function(data) { 
    $('#generator-state').removeClass('on off').addClass(data.state === 'on' ? 'on' : 'off'); 
    }); 
} 

setInterval(fetchState, 10 * 60 * 1000); 
+0

대단히 감사합니다. – comfroels

0

괜찮 았어. 나는 다른 파일에서 javascript를하고 페이지에 연결했다. 헤더 나 자바 스크립트 파일에 필요한 것들이 있습니까? 내가 그 파일에 가지고있는 것은 당신이 쓴 것입니다. 또한 정확히 db.php에 있어야 할 필요가 있습니까? 내가 가진 것을 줄 게.

<?php 
require_once 'login.php'; 

$db_server=mysql_connect($db_hostname,$db_username,$db_password); 
if(!$db_server) die("Unable to connect to mysql: " . mysql_error()); 
mysql_select_db($db_database,$db_server) or die("Unable to connect to DB: " . mysql_error()); 

$query = "SELECT state FROM gen WHERE user='ccdc'"; 
$result = mysql_query($query); 
$data = mysql_fetch_row($result); 
?> 
관련 문제