2015-01-18 7 views
0

저는 현재 html과 PHP를 연구 중이며 "통지 시스템"에 관한이 작은 프로젝트를 작성했습니다. 내 실제 문제에 대해 자세히 설명하기 전에 먼저 설명해야한다고 생각합니다.이 체크 박스를 실시간으로 어떻게 표시 할 수 있습니까?

내 표는 다음과 같습니다

enter image description here

  1. 각 기능 칼럼의 값을 얻을 $ A, $ B를, $의 C, $ D와에 저장할 것입니다 내 첫번째 PHP 명령 $ e.

  2. 내 두 번째 php 명령은 5 개의 텍스트 상자를 표시하고 $ a, $ b, $ c, $ d 및 $ e의 값을 기준으로 선택 표시를 표시하므로 내 테이블을 기반으로 한 출력에 5 개의 확인란이 표시됩니다. 수표가있는 첫 번째, 두 번째 및 네 번째 확인란.

  3. 세 번째 php 명령은 사용자가 선호하는 알림을 변경하려고 할 수 있으므로 확인란의 값을 수집합니다. 제출을 클릭하면 코드가 텍스트 상자의 새 값을 업데이트합니다. 다음은

내 현재 진행 상황에 대한 코드입니다 :

<?php 
mysql_connect('localhost','root','') or die(mysql_error()); 
mysql_select_db('main_database') or die(mysql_error()); 

$fetchchoice=mysql_query("SELECT * FROM notification_table WHERE username='carl'"); 

while($getchoice=mysql_fetch_assoc($fetchchoice)){ 
    $a=$getchoice['feature1'];; 
    $b=$getchoice['feature2']; 
    $c=$getchoice['feature3']; 
    $d=$getchoice['feature4']; 
    $e=$getchoice['feature5']; 
} 
?> 
<html> 
<head> 
</head> 
<body> 
<form method="POST"> 
<?php 
echo 
' 
<input type="hidden" name="choice1" value=""> 
<input type="checkbox" name="choice1" value="checked" '.$a.' > Feature 1 <br> 
<input type="hidden" name="choice2" value=""> 
<input type="checkbox" name="choice2" value="checked" '.$b.' > Feature 2 <br> 
<input type="hidden" name="choice3" value=""> 
<input type="checkbox" name="choice3" value="checked" '.$c.' > Feature 3 <br> 
<input type="hidden" name="choice4" value=""> 
<input type="checkbox" name="choice4" value="checked" '.$d.' > Feature 4 <br> 
<input type="hidden" name="choice5" value=""> 
<input type="checkbox" name="choice5" value="checked" '.$e.' > Feature 5 <br> 
'; 
?> 
<input type="submit" name="submit" value="Submit"> 
</form> 
<?php 
if(isset($_POST['submit'])) 
{ 
$f1choice = $_POST['choice1']; 
$f2choice = $_POST['choice2']; 
$f3choice = $_POST['choice3']; 
$f4choice = $_POST['choice4']; 
$f5choice = $_POST['choice5']; 

echo "1."; 
echo $f1choice; 
echo "<br />"; 
echo "2."; 
echo $f2choice; 
echo "<br />"; 
echo "3."; 
echo $f3choice; 
echo "<br />"; 
echo "4."; 
echo $f4choice; 
echo "<br />"; 
echo "5."; 
echo $f5choice; 

$kweri = "UPDATE `main_database`.`notification_table` SET `feature1` = '".$f1choice."', `feature2` = '".$f2choice."', `feature3` = '".$f3choice."', `feature4` = '".$f4choice."', `feature5` = '".$f5choice."' WHERE `notification_table`.`username` = 'carl'"; 
mysql_query($kweri); 
} 
?> 
</body> 
</html> 

문제

내 문제는 지금이 단지 이후 나타날 수있는 업데이트 확인란을이 페이지를 새로 고침해야한다는 것입니다

PHP에서 할 일이 전혀 자바 스크립트에서 경험이 있지만 그것은 실시간으로 내 현재 텍스트 상자를 표시하는 가장 좋은 방법이라고 생각하지만, 어디서 시작 해야할지 모르거나 거기에 내 체크 박스를 보여주는 갈 수있는 또 다른 방법이있다. 실시간.

EXTRA 문제 (이것은 내 시스템 만이 코드에 관한되지 함께 할 수있는 뭔가가. 너희들이이 문제를 살펴 수있는 경우가 많은 것을 의미한다.)

너희들이 보았 듯이, 테이블 위의 내용은 알림에 대한 사용자의 취향을 추적하는 것입니다. 그러나 시스템은 거기서 멈추지 않습니다. 기능을 사용한 후에 알림을 전달하는 방법을 알아야합니다. 내 생각은 다른 테이블에서 일어난 일을 처리하기 위해 모든 기능 후에 추가 SQL 명령을 추가해야한다는 것입니다. 예를 들어, 등록 정보를 저장하기위한 삽입 명령 후 등록, 나는 또한 삽입, 사용자 "예"는 "날짜"에 별도의 테이블, 즉 "notif_table"에 "등록"했다. 내 열은 사용자 이름, 작업 및 날짜이므로 내 알림 페이지는 '사용자'가 '2015 년 1 월 18 일'에 '등록'되었음을 나타낼 수 있습니다.

하지만 다시 말해, 그건 알림에 대한 제 이론이었으며 제안과 수정에 매우 열려 있습니다.

+0

나는 정확한 값을 얻고 있는지 확인하기 위해 UPDATE 문 위에 에코를 넣었습니다. –

답변

1

select 문 앞에 if(isset($_POST['submit']))으로 부품을두기 만하면됩니다.

추가 문제 :
기존 테이블 (예 : 'created')에 열을 추가하고 행을 삽입 할 때 now()을 입력하기 만하면됩니다.

+0

고마워요! 이것은 내가 필요한 것입니다. 나는 여분의 문제에 대한 질문이 있는데, 이것은 통지 시스템을 만드는 데 알맞은 방법일까요? 페이지가 데이터베이스를 조작 할 때 무슨 일이 일어나고 있는지를 복사하기 위해 여분의 SQL 문을 추가하겠습니까? 장기적으로 어떤 결점이 있습니까? –

+0

아, 내 다음 아이디어는 알림의 제목을 링크로 전환하여 "본"기능을 추가하는 것이며, 클릭하면 선택한 제목에 대한 전체 세부 정보가 표시되고 해당 제목도 다음과 같이 표시됩니다. notif_table의 "read" –

+0

'created'열에는 별도의 sql 문이 필요하지 않습니다. 삽입물에 그냥 채워져 있습니다. 그 밖의 것은 의견이 너무 광범위하여 여기에서 토론 할 수 없습니다. 각각의 특정 문제에 대해 다른 질문을하십시오. – hellcode

관련 문제