- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- update database con javascript si può?
-
update database con javascript si può?
ciao vorrei fare degli update sul db ma non voglio utilizzare il pulsante submit per motivi di estetica, ma vorrei utilizzare solo un link, ho provato questo metodo ma non funziona, dove sbaglio?
<?
if ($update_pdf==1){
$sql="UPDATE c_art_articolo
SET contatore_download_pdf = contatore_download_pdf + 1
WHERE c_art_articolo.id_art_articolo = '".$row_articolomarca['id_art_articolo']."'";
mysql_query($sql,$conn) or die (mysql_error());
}
?><form action="<?=$PHP_SELF?>" method="post" id="form_download">
<input type="hidden" name="update_pdf" value="1"><a href="<?=$row_articolomarca['link_pdf']?>" onclick="document.getElementById["form_download"].submit();">
<?php echo pulisci2(strtolower($row_articolomarca['sottotitolo_articolo']));?>
</a></form>
-
Posso proporre un'alternativa?
Supponiamo la tua pagina si chiami pippo.php
Nella parte alta connetti al db e esegui la query per $row_articolomarca.
Subito sotto metti un
[PHP]if(isset($_GET['query']))
{
$sql="UPDATE c_art_articolo
SET contatore_download_pdf = contatore_download_pdf + 1
WHERE c_art_articolo.id_art_articolo = '".$row_articolomarca['id_art_articolo']."'";
mysql_query($sql,$conn) or die (mysql_error());header("Location: pippo.php");
}[/PHP]E poi sotto il link:
[PHP]<a href="pippo.php?query">
<?php echo pulisci2(strtolower($row_articolomarca['sottotitolo_articolo']));?>
</a>[/PHP]In questo modo il link verrà visto appena la pagina viene caricata. se uno ci clicca sopra ricarica la pagina con la variabile $_GET['query'], che attiva l'if e senza far vedere doppie ricariche con un redirect ritorna alla pagina iniziale avendo aggiornato il database. In questo modo con un solo click fai quello che prima facevi con javascript e chiamate AJAX
-
Grazie Meis per la risposta.
Una domanda: all'inizio dici "Nella parte alta connetti al db e esegui la query per $row_articolomarca"
ma facendo così non parte subito l'UPDATE?
-
Scusa, mi sono spiegato male. Intendo la query SELECT dalla quale hai ricavato $row_articolomarca.
O, se non è una query, atribuisci in qualche modo il valore che vuoi a $row_articolomarca['id_art_articolo'] e a $row_articolomarca['sottotitolo_articolo']
-
ok ho fatto così, però in questo modo non mi scarica più il pdf
-
Ecco il codice che ho scritto:
[PHP]
<?if(isset($_GET['query'])){$sql="UPDATE c_art_articolo SET contatore_download_pdf = contatore_download_pdf + 1 WHERE c_art_articolo.id_art_articolo = '".$row_articolomarca['id_art_articolo']."'";mysql_query($sql,$conn) or die (mysql_error());
header("Location: wuwuwu.sito.it/index_editoriale.php?menu=home&id=<?=$row_articolomarca[id_art_articolo]?>");}?><a href="wuwuwu.sito.it/index_editoriale.php?query&<?=$row_articolomarca['link_pdf']?>"><?php echo pulisci2(strtolower($row_articolomarca['sottotitolo_articolo']));?></a>[/PHP]
-
Com'era il codice all'inizio? Non avevi incluso una parte di download di PDF
-
Ecco tutto il codice tranne quello naturalmente sul collegamento al db che non ti serve:
[PHP]
<?php $sql_articolomarca = "SELECT c_art_articolo., c_art_sottocategoria.
FROM c_art_articolo
INNER JOIN c_art_sottocategoriaON c_art_articolo.id_art_sottocategoria = c_art_sottocategoria.id_art_sottocategoria
WHERE c_art_articolo.id_art_sottocategoria = '56'
ORDER BY c_art_articolo.id_art_articolo DESC LIMIT 20"; $result_articolomarca = mysql_query($sql_articolomarca,$conn) or die ("errore ".mysql_error());
while($row_articolomarca=mysql_fetch_array($result_articolomarca)){?><?$id=$_GET['id'];if(isset($_GET['query'])){$sql="UPDATE c_art_articolo SET contatore_download_pdf = contatore_download_pdf + 1 WHERE c_art_articolo.id_art_articolo = '".$row_articolomarca['id_art_articolo']."'";mysql_query($sql,$conn) or die (mysql_error());
header("Location: wuwuwu.site.it/index_editoriale.php?menu=home&id=<?php $id?>");}?><a href="wuwuwu.site.it/index_editoriale.php?menu=home&id=<?php echo $id;?>?query"><?php echo pulisci2(strtolower($row_articolomarca['sottotitolo_articolo']));?></a>
<?}?> [/PHP]
-
in questo modo mi aggiorna il contatore di tutti i pdf contemporaneamente anzichè solo di quello cliccato, e il pdf non me lo scarica
-
Ok ora il contatore funziona, l'ho modificato in questo modo, mi rimane però il problema che non mi scarica il pdf:
[PHP]
<?php
$a = 1;$sql_articolomarca = "SELECT c_art_articolo., c_art_sottocategoria.
FROM c_art_articolo
INNER JOIN c_art_sottocategoriaON c_art_articolo.id_art_sottocategoria = c_art_sottocategoria.id_art_sottocategoria
WHERE c_art_articolo.id_art_sottocategoria = '56'
ORDER BY c_art_articolo.id_art_articolo DESC LIMIT 20"; $result_articolomarca = mysql_query($sql_articolomarca,$conn) or die ("errore ".mysql_error());
while($row_articolomarca=mysql_fetch_array($result_articolomarca)){$numero = $a++;
?><?
$id=$_GET['id'];if ($pagina==$numero){
$sql="UPDATE c_art_articolo SET contatore_download_pdf = contatore_download_pdf + 1 WHERE c_art_articolo.id_art_articolo = '".$row_articolomarca['id_art_articolo']."'";mysql_query($sql,$conn) or die (mysql_error());
header("Location: wuwuwu.site.it/index_editoriale.php?menu=home&id=<?php $id?>");}?><a href="wuwuwu.site.it/index_editoriale.php?menu=home&id=<?=$row_articolomarca['id_art_articolo']?>&pagina=<?php echo $numero; ?>"><?php echo pulisci2(strtolower($row_articolomarca['sottotitolo_articolo']));?></a>[/PHP]