Kezdőoldal » Számítástechnika » Weblapkészítés » Miért kettőzi meg a dolgokat...

Miért kettőzi meg a dolgokat a következő kód?

Figyelt kérdés

Ez csak egy teszt kód, nem ez van benne az oldalamon, de szinte ugyanaz a probléma és biztos hogy innen ered. Mikor rákattintok a szavazásra még egyszer kiírja az eredményt.


Hogy meg tudjad nézni létre kell hozni egy poll_result.txt fájlt amiben a szavazatok száma szerepel (alapból tehát: 0||0 )


Itt a kód:


<html>

<head>

<script>

function getVote(int) {

if (window.XMLHttpRequest) {

xmlhttp=new XMLHttpRequest();

} else {

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function() {

if (xmlhttp.readyState==4 && xmlhttp.status==200) {

document.getElementById("poll").innerHTML=xmlhttp.responseText;

}

}

xmlhttp.open("GET","vote.php?vote="+int,true);

xmlhttp.send();

}

</script>

</head>

<body>

<link href="styles.css" rel="stylesheet" type="text/css">

<div id="poll">

<h3>Do you like PHP and AJAX so far?</h3>

<form>


Yes:

<button type="button" name="vote" value="0" onclick="getVote(this.value)"><img src='images/like.png' /></button>

<br>No:

<button type="button" name="vote" value="1" onclick="getVote(this.value)"><img src='images/unlike.png' /></button>

</form>

</div>


</body>

</html>


<?php

$vote = $_REQUEST['vote'];


//get content of textfile

$filename = "poll_result.txt";

$content = file($filename);


//put content in array

$array = explode("||", $content[0]);

$yes = $array[0];

$no = $array[1];


if ($vote == 0) {

$yes = $yes + 1;

}

if ($vote == 1) {

$no = $no + 1;

}


//insert votes to txt file

$insertvote = $yes."||".$no;

$fp = fopen($filename,"w");

fputs($fp,$insertvote);

fclose($fp);

?>


<h2>Result:</h2>

<table>

<tr>

<td>Yes:</td>

<td>

<img src="poll.gif"

width='<?php echo(100*round($yes/($no+$yes),2)); ?>'

height='20'>

<?php echo(100*round($yes/($no+$yes),2)); ?>%

</td>

</tr>

<tr>

<td>No:</td>

<td>

<img src="poll.gif"

width='<?php echo(100*round($no/($no+$yes),2)); ?>'

height='20'>

<?php echo(100*round($no/($no+$yes),2)); ?>%

</td>

</tr>

</table>



2015. márc. 9. 21:30
 1/3 anonim ***** válasza:

Most én leszek a köcsög, de ilyen borzalmat még nem láttam. body tag en kivül van a tábla, hibakezelés az 0 -a.


Valami ilyesmi nem ártana talán.


if (isset($vote)) {

$vote = $_REQUEST['vote'];

if ($vote == 0) {

$yes = $yes + 1;

}

elseif ($vote == 1) {

$no = $no + 1;

}

}


Meg ez.


<form action="" method="post">


Egyébként ajaxhoz nem szükséges form, illetve jquery et használnék ajax lekérdezéshez a nativ kódod is rossz. Nativban ajaxot nem egyszerű jól megcsinálni.


Gondoltam megcsinálom de ez úgy rossz ahogy van. Ezt dobd ki a szemétbe.

2015. márc. 10. 14:07
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:

Nekem sem tetszett a kód, de jobbat nem találtam és nem értek az ajax-hoz, ezért ilyenkor azt szoktam csinálni hogy keresek valami olyan kódot ami kell és amennyire tudom átalakítom...


ennek a kódnak itt amúgy a forrása:

[link]



most akkor mit kellene csinálnom?

2015. márc. 10. 15:15
 3/3 anonim ***** válasza:

"Nekem sem tetszett a kód, de jobbat nem találtam [...] most akkor mit kellene csinálnom?"


Olyan elfoglaltságot választani, amihez értesz, vagy megtanulni azt, amivel foglalkozol.

2015. márc. 10. 19:00
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!