Hogyan tudok phpben egy gomb klikkeléssel 1et hozzá adni egy változóhoz?
Egy ilyen gombról lenne szó:
<a href="#" class="button">+</a>
Az interneten csak valamilyen formt insertes dolgokkal láttam megoldást nem ilyen gombal és nagyon nem értem, még kezdő vagyok.
Egy gomb megnyomásával 1et hozzá akarok adni egy értékhez és egy másik gomb megnyomásával meg kivonni 1et.
Ehhez nem feltétlen kell szerver oldal. Sima javascriptel kell megoldani.
De ha mindenféleképpen PHPval szeretnéd, ahhoz is kelleni fog javascript, hogy ne kelljen újra tölteni a weboldalt (Ajax)
Egy gyorsan összecsapott példa:
a lényeg a munkamenet változóban ($_SESSION) és a GET-metódusú kérésben rejlik.
Az index.php fájl tartalma:
------ ------ ------ ------
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#buttons {
list-style-type: none;
padding: 0;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#buttons li {
display: block;
float: left;
margin: 1em;
border: 1px solid blue;
}
#buttons li a {
display: block;
padding: 0.5em;
background-color: white;
color: blue;
}
#buttons li a:hover {
background-color: blue;
color: white;
cursor: pointer;
}
</style>
</head>
<body>
<h1 id="value"><?php session_start(); echo $_SESSION["counter"]; ?></h1>
<ul id="buttons">
<li>
<a onclick="loadDoc('update.php?doit=inc', myFunction);">+</a>
</li>
<li>
<a onclick="loadDoc('update.php?doit=dec', myFunction);">-</a>
</li>
<li>
<a onclick="loadDoc('update.php?doit=res', myFunction);">0</a>
</li>
</ul>
<script>
function loadDoc(url, cFunction) {
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
cFunction(this);
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
function myFunction(xhttp) {
document.getElementById("value").innerHTML = xhttp.responseText;
}
</script>
</body>
</html>
Az update.php fájl tartalma:
------ ------ ------ ------
<?php
session_start();
if(!isset($_SESSION["counter"])) {
$_SESSION["counter"] = 0;
}
if (isset($_GET["doit"])) {
switch ($_GET["doit"]) {
case "inc":
$_SESSION["counter"] += 1;
break;
case "dec":
$_SESSION["counter"] -= 1;
break;
case "res":
$_SESSION["counter"] = 0;
break;
}
}
echo $_SESSION["counter"];
?>
#3: majdnem jó a kiegészítés, köszönöm, de, az index.php-ban én jobban szétszeparálnám a HTML-t a Javascripttől, és kiebrudalnám a PHP-részt is belőle - így maradhat szimpla HTML:
(Mondjuk éles rendszeren ezt így nem illik - az update.php-nak bármennyi kérés,bárhonnan küldhető - de most ez csak egy példa)
Huuuuu, de utálom a phpt, vagyis úgy mondom, hogy még nehezen megy, mert kb semmit sem tudok a nyelvről :S eddig még csak javával csináltam terminálos dolgokat :)
Köszönöm szépen a válaszokat, mindenkinek ment a like.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!