2013-10-10 3 views
2

나는 에너지 음료를 내놓고있는 친구를위한 사이트에서 일하고 있습니다. 그는 나를 위해 약간 진보 된 것들을 요청했고, 시도해 볼 수 있다고 말했지만 다른 사람을 데려 가야 할 수도 있습니다. 페이지는 (지금까지) here내 서버에 변수 저장

버튼이 잘 계산되지만, 페이지를 다시로드하면 변수가 0으로 재설정됩니다. PHP를 사용하여 변수를 저장할 수 있다고 생각하지만 확실하지 않습니다. 어떻게 새롭고 신나는 지 모르겠다.

나는 이것을 지을 수 있도록 도와주고 있지만, 무엇보다 배우는 것이 더 중요합니다. 버튼을 클릭 한 횟수를 저장하는 방법에 대한 도움을 주시면 감사하겠습니다. 카운트가 영구적으로 저장되어야하므로 아무 데나 클릭하면 총 카운트가 표시됩니다 ... 말하자면 버튼처럼 작동합니다.

<script type ="text/javascript"> 

var x = 0; 
function count() 
{ 

x += 1; 
document.getElementById("counting").value = x; 

} 
</script> 
</head> 
<body> 
<input id = "counting" type = "text"/class="counter"><br>people are excited about<br>      <strongb>EXP Energy!</strong></h1><p>&nbsp</p> 

표시 EXP 에너지를 보여주세요. 세상에 당신의 석방에 대해 흥분한다는 것을 알리십시오.

<p></center> 
<p>&nbsp</p><a class="push_button" href="#" input onclick = "count()"/>I'm Excited Too!</a> 
</p>  
+1

얼마나 오래이 데이터를 유지해야합니까? (사용자가 브라우저를 닫을 때까지, 시간이 끝날 때까지) – Matthew

+0

코드를 보여줍니다. 그렇지 않으면 어떻게 문제를 발견 할 수 있습니까? –

+0

안녕하세요. 세션을 사용해보세요. [php session] (http://www.php.net/manual/en/book.session.php) – vbrmnd

답변

1

당신이하고있는 카운트 함수는 JS 기능이며, 그래서 side.You는 JSP을 사용할 필요가 클라이언트와 데이터베이스 (MySQL은은 오픈 소스입니다) 버튼이있는 count.When를 저장하는 것입니다 그때 계산하고 아약스를 사용하여 데이터베이스에 저장하는 함수를 호출합니다. 사용 표시 jsp 그래서 데이터베이스와 통신 할 수 있고 저장된 값을 얻을 수 있습니다. 당신이 카운트 값을 영구적으로 원하지 않는다면 세션에 참석하라고 제안합니다. 세션이 만료되지 않았거나 사용자가 브라우저를 닫지 않으면 세션에서 카운트 값을 얻습니다. JSP에서 세션의 수를 저장하고 질문 PHP로 태그되어 있기 때문에 카운트 값을

0

를 얻을 수 session.getAttribute()를 사용하는 session.setAttribute()를 사용합니다. 바로 올 시점 클릭 할 때마다 PHP 스크립트에 ajax 요청을 발생시켜 saveCount.php라고 말하고 현재 카운트를 매개 변수 (POST 또는 GET)로 보냅니다. saveCount.php에서 데이터베이스 (예 : mysql)에 연결하고 개수를 저장하십시오. 사용자가 페이지를로드 할 때마다 카운트를 가져 와서 페이지에 표시하십시오.

  1. 아약스 JQuery와 - Ajax Jquery
  2. 아약스 MDN : - Ajax MDN

감사합니다.

0

위에서 제안한대로 JSP을 사용하고 DB (MySQL opensource)의 카운트를 유지하고 모든 클릭 또는 페이지로드시에 검색하지만 HTML 만 사용하는 경우에는 적합하지 않을 수 있습니다. 하지만 귀하의 요구 사항을 분명하게 알려주고 카운트의 의미를 알려주십시오. 클릭하면 'I am Excited Too' 카운트를 1 씩 증가시키는 JS가 호출되며 클라이언트 측에 있습니다. 또한 세션에 저장하는 경우 개수가 모든 세션마다 달라집니다. 요구 사항을 명확히 밝혀야 만 여러 가지 다른 방법으로 처리 할 수 ​​있습니다.