Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP]Dynamiczne odczytanie i zapisanie danej do MySQL
Forum PHP.pl > Forum > Przedszkole
globalinfo
Witam,

Chciałbym odczytać dane z MySQL dla zmiennej
var count1 = 6;
Potem po zmianie wartości przez kliknięcie przycisku automatycznie uaktualnić wartość w bazie - nie bardzo wiem jak to ugryźć. sciana.gif

Kod
<script type="text/javascript">
        var count1 = 6;
        function GON1() { if( count1 <= 24){var el = document.getElementById('GON1'); el.innerHTML = count1++
  
        }}
         function GON12(){if( count1 >= 0){var el = document.getElementById('GON1'); el.innerHTML = count1--}}
</script>
  

<div style='position:absolute;margin: 30px 0 0 115px'>
<a href="#" onClick="GON1()"><div class='buttonUp'></div></a></div>

<div style='position:absolute;margin: 45px 0 0 120px'>
<h2> <p id="GON1"><? echo $count1; ?></p> </h2></div>

<div style='position:absolute;margin: 105px 0 0 115px'>
<a href="#" onClick="GON12()"><div class='buttonDown'></div></a></div>
freewalker
Rozumiem, że wczytanie danych z MySQL przez PHP nie stanowi dla ciebie problemu i w zmiennej $count1 masz już pobraną wartość, i wypuszczasz wynik w HTML, który później chcesz modyfikować przez JS?
Aby z JS wrzucać do bazy, czy w ogóle komunikować się z plikami PHP polecam jQuery, przy pomocy którego zaimplementowanie takich rozwiązań to bajka;)
Puszczasz wtedy (przez jQuery) zmienną do pliku php, w którym zamieszczasz skrypt aktualizujący bazę, przy pomocy:

$.post("uaktualnianie_twojej_bazy.php", { nowawartosc: count1 });

Twój skrypt JS wyglądałby wtedy coś na miarę:

<script type="text/javascript">
$(document).ready(function(){

var count1 = 6;
function GON1(){
if( count1 <= 24){
var el = document.getElementById('GON1');
el.innerHTML = count1++;
$.post("uaktualnianie_twojej_bazy.php", { nowawartosc: count1 });
}
}
function GON12(){
if( count1 >= 0){
var el = document.getElementById('GON1');
el.innerHTML = count1--;
$.post("uaktualnianie_twojej_bazy.php", { nowawartosc: count1 });
}
}
});
</script>
globalinfo
Coś mi nie chce działać - przyciski nie działają.


Kod dla pliku uaktualnienie.php
Kod
<?php
    // Connect to MySQL
    include("dbconnect.php");
if(isset($_POST['count1'])){
echo ($_POST['count1']);
$count1=$_POST['count1'];
echo $count1;
$zapytanie = "UPDATE `Sterowanie` SET `GON1`='.$count1.' WHERE `ID`='1'";
$idzapytania = mysql_query($zapytanie);
}
?>


A tu kod jaki mi mam na stronie, który obsługuje przyciski dla ustawienia ON.
Kod
<script type="text/javascript">
$(document).ready(function(){

var count1 = 6;
function GON1(){
if( count1 <= 24){
var el = document.getElementById('GON1');
el.innerHTML = count1++;
$.post("uaktualnienie.php", { nowawartosc: count1 });
}
}
function GON12(){
if( count1 >= 0){
var el = document.getElementById('GON1');
el.innerHTML = count1--;
$.post("uaktualnienie.php", { nowawartosc: count1 });
}
}
}</script>
<script type="text/javascript">
nospor
Postem slesz:

nowawartosc: count1

A potem w php radosnie sprawdzasz
if(isset($_POST['count1'])

naprawde nie widzisz ze postem slesz index o nazwie "nowawartosc" a nie "count1" ?
Poza tym naprawde tak ciezko zrobic

print_r($_POST);

by sprawdzic co idzie tym postem?
globalinfo
A dlaczego przyciski nie zwiększają lub nie zmniejszają wartości po wstawieniu
$.post("uaktualnienie.php", { nowawartosc: count1 }); questionmark.gif
nospor
No przeciez ci napisalem:
w kodzie php twoj warunek nigdy nie jest spelniony wiec to co jest wewnatrz IF nigdy sie nie wykonuje...
viking
A gdzie masz callback który to robi po zakończeniu żądania ajaksowego?
nospor
zas jesli pytasz o kod js to nie:
el.innerHTML = count1++;
a:
el.innerHTML = ++count1;
globalinfo
Cytat(nospor @ 8.03.2017, 12:04:02 ) *
zas jesli pytasz o kod js to nie:
el.innerHTML = count1++;
a:
el.innerHTML = ++count1;


Zamieniłem ++ i -- ale dalej nie działa zmiana wartosci.
Jakie znaczenie ma czy warunek się wykonał w uaktualnienie.php
przecież ten plik jak się wykonuje to nie powinien wpływać na wartość w wykonywanym skrypcie.
Według mnie coś jest nie tak bo jak usunę
$(document).ready(function(){
i
$.post("uaktualnienie.php", { nowawartosc: count1 });
to wartości licznika mi się zmieniają.
viking
A jaki ma sens inkrementowanie licznika jeśli ta wartość nigdzie nie zostala zapisana?
globalinfo
Cytat(viking @ 8.03.2017, 13:37:00 ) *
A jaki ma sens inkrementowanie licznika jeśli ta wartość nigdzie nie zostala zapisana?

uaktualnienie.php będzie służyło do uaktualnienia 24 liczników więc sprawdzenie czy w POST zawiera sprawdzaną zmienną według mnie powinien być.
nospor
Wywal samo
$(document).ready(function(){
gdyz przez to funkcje GON1 sa poza zasiegiem

Cytat
więc sprawdzenie czy w POST zawiera sprawdzaną zmienną według mnie powinien być.
Ja ci nie kazalem usuwac IF. Ja ci mowie, ze twoj warunek w IF na chwile obecna jest zly. Staraj sie czytaz ze zrozumieniem
globalinfo
Poprawiłem i wartość licznika mi się zwiększa,
ale w bazie dane są nieuaktualnione.
Kod
<script type="text/javascript">
function GON1(){
if( count1 <= 24){
var el = document.getElementById('GON1');
el.innerHTML = ++count1;
$.post("uaktualnienie.php", { count1: count1 });
}
}
function GON12(){
if( count1 >= 0){
var el = document.getElementById('GON1');
el.innerHTML = --count1;
$.post("uaktualnienie.php", { count1: count1 });
}
}
</script>

Plik uaktualnienie.php tak wygląda
Kod
<?php
    // Connect to MySQL
    include("dbconnect.php");
if(isset($_POST['count1'])){
echo ($_POST['count1']);
$count1=$_POST['count1'];
echo $count1;
$zapytanie = "UPDATE `Sterowanie` SET `GON1`='.$count1.' WHERE `ID`='1'";
$idzapytania = mysql_query($zapytanie);
}
print_r($_POST);
?>



nospor
nie:
"UPDATE `Sterowanie` SET `GON1`='.$count1.' WHERE `ID`='1'";

a:
"UPDATE `Sterowanie` SET `GON1`=$count1 WHERE `ID`='1'";



Wlacz wkoncu wyswietlanie bledow, wyswietlaj bledy zapytan, sprawdzaj co zwraca ci AJAX.
globalinfo
Po kliknięciu otrzymuję komunikat w debug:
Cytat
kontrol.php:94 Uncaught ReferenceError: $ is not defined
at GON1 (kontrol.php:94)
at HTMLAnchorElement.onclick (VM105 kontrol.php:279)
GON1 @ kontrol.php:94
onclick @ VM105 kontrol.php:279

nospor
a jQuery dodales? Bo wg. komunikatu nie.
globalinfo
Cytat(nospor @ 8.03.2017, 19:20:28 ) *
a jQuery dodales? Bo wg. komunikatu nie.

Wielkie dzięki
DZIAŁA SUPER thumbsupsmileyanim.gif yahoo.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.