Dawid Pierzchalski PHP Developer
Temat: przekazanie wartości do skryptu php bez otwierania pliku
Da się zrobić coś takiego w ogóle ?Problem polega na tym, że na stronę ładowany jest minipanel do oceniania.
Panel jest dość prosty:
Jest to przycisk + ,dalej liczba pozytywnych ocen (kliknięć na przycisk plus) dla tego artykułu pobrana z bazy danych, przycisk - i liczba negatywnych ocen (kliknięć na przycisk minus) dla danego artykułu pobrana z bazy danych.
<?php
$ArticleId = htmlspecialchars(trim($_GET['ArticleId']));
include("conf.php");
// Połączenie z bazą mysql
$polaczenie = mysql_connect($baza_host, $baza_login, $baza_haslo);
$db = mysql_select_db($baza_nazwa);
$count_pos = 0;
$count_neg = 0;
$sql = "SELECT count(*) From Oceny WHERE ArticleID = '$ArticleId' and Ocena = 1";
$rezultat = mysql_query($sql) or die(mysql_error('błąd podczas pobierania ilości ocen'));
while ($row = mysql_fetch_assoc($rezultat, MYSQL_BOTH)){$count_pos = $row[0];}
mysql_free_result($rezultat);
$sql = "SELECT count(*) From Oceny Where StronaID = '$ArticleId' and Ocena = 0";
$rezultat = mysql_query($sql) or die(mysql_error('błąd podczas pobierania ilości ocen'));
while ($row = mysql_fetch_assoc($rezultat, MYSQL_BOTH)){$count_neg = $row[0];}
mysql_free_result($rezultat);
mysql_close($polaczenie);
echo('<div class="page_rate_icons">');
echo('<input type="button" name="EditBtn" value="+" class="form" onclick="AddRate(1, \''.str_replace("'", "\\'", $stronaId).'\');"/>');
echo(' <span style="color:#9acd32">'.$count_pos.'</span> ');
echo('<input type="button" name="DeleteBtn" value="-" class="form" onclick="AddRate(0, \''.str_replace("'", "\\'", $stronaId).'\');"/>');
echo(' <span style="color:#b22222">'.$count_neg.'</span> ');
echo('</div>');
?>
Jak widać wartość parametru ArticleID jest pobierana przy pomocy metody GET. Chodzi o to, żeby panel był elastyczny i można go było zawołać w dowolnym miejscu, a następnie przekazać ten parametr do funkcji JavaScript.
Funkcja javascript miała by wywołać plik dodaj_ocene.php?ArticleID=$ArticleID&Ocena=$Ocena
tylko po to, żeby dodać ocenę do bazy danych.
Czy taki przepływ danych jest w ogóle możliwy do zrealizowania ?