Sono un tipo un po impazziente e mi stavo gia'cercando come scaricare i dati sulla nuova pagina per far riprendere le posizioni salvate.Poi ti mostrero'..ora è il momento della nanna.
Mi ricordavo della funzione di rilascio, era solo un chiarimento, il problema grosso è sul database mi esce sempre 0 alle coordinate
Se vuoi che non vengano inseriti troppi record devi intanto fare una serie di controlli...
Quindi prima di tutto crei una sessione (che distruggerai quando l'utente lascia la pagina) e vedi se quest'ultima esiste già.
Se esiste vuol dire che l'utente sta ancora sistemando il div e modifichi la query con UPDATE.
Se non esiste la crei con INSERT.
Spero di essere stato chiaro.
Ciao!
Dici per fare in modo che prenda le coordinate? O_O
Per far in modo che non venga inserito un nuovo record ad ogni "onMouseUp".
INSERT crea un record nuovo. UPDATE aggiorna un record.
Ciao!
regolamento altervista_______________ regolamento forum
Forse non mi sono spiegato bene, l'appunto di ''INSERT'' e ''UPDATE'' potrebbe venirmi utile tra poco.IL problema è che non le prende ste benedette coordinate, il database ovunque faccio il clik o l onMouseUp poi su database mi salva ''zero'' sia per x che per y.
Come ti ho già detto nell'altra pagina, prova a vedere dove sta il problema utilizzando firebug: sotto "net" appaiono tutti i pacchetti inviati verso il server; quindi vedi il contenuto e se sono 0 0, significa che i ll problema è lato client (come penso), mentre se sono corrette, il problema è lato server (PHP).
Ciao!
regolamento altervista_______________ regolamento forum
Firebug non lo conoscevo e devo dire che è molto interessante ma non so quanto mi aiuta.Lo stato sotto net è ok ma nei contenuti i pachetti sono 0.Quindi se è come dici te il problema sta nello script che invia i dati tramite jquey.....
Se indichi l'indirizzo della pagina possiamo dirti qual'è il problema.
Nota che il codice che ti avevo dato era solo un esempio... Cioè, non è necessario fare quegli span e poi prelevare le coordinate da loro... Ad esempio, puoi assegnare direttamente x e y da ui.offset.top e ui.offset.left.
Inoltre, non vedo mouseUp, ma ancora vedo click, e comunque a me da firebug (sotto net) non parte alcun pacchetto .
Inoltre, ti consiglio di rendere quello script più "flsessibile", nel senso che ad ogni elemento, devi applicare manualmente il tutto. Invece, ad esempio, potresti fare una funzione che (ad esempio, ma dipende dalle tue necessità di cosa vorrai fare) gli passi un id, e lui fa tutto in automatico (salva le coordinate, invia i dati, rende "draggabile"). In questo modo, teoricamente puoi inserire molti elementi.
Ciao!
regolamento altervista_______________ regolamento forum
Si ma, ripeto, non invia i pacchetti!!!!!Il problema di cui sto parlando da ieri è proprio questo!!!!!
MouseUp poi ce lo metto e posso provare anche a rendere il tutto piu' flessibile ma ora non mi pare il caso di mettermi a smanettare in un codice che gia' non fa quello che dovrebbe.
Guarda che se segui quello che ti ho detto, funziona.
Counque, io avevo capito che i dati li inviava, perché altrimenti non mi spiego questa tua frase:
Ciao!Originalmente inviato da fantacalciojarno
regolamento altervista_______________ regolamento forum
Non so come o se lo hai provato, su database i dati arrivano ma prendono sempre e solo zero, arrivavano anche prima ma era la stessa cosa.Ho riprovato 20 volte, i dati arrivano ma non sono le coordinate giuste
Ma allora i dati li inviava! (però, io non li vedevo).
Comunque, usa le coordinate come ho fatto io. Non ha molto senso scriverle in uno span, e poi rileggerle dallo span... Con una variabile è molto più veloce.
Ciao!
regolamento altervista_______________ regolamento forum
Tu stai usando il metodo val, che restituisce il valore dei campi di un modulo, non la stringa di testo in uno span, usato come fai tu restituisce una stringa vuota, come hai potuto appurare.
Prova così: il salvataggio viene effettuato non appena l'elemento viene rilasciatoCodice HTML:<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it-IT"> <head> <title>Drag test</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> <style type="text/css"> .draggable{ width: 100px; height: 50px; background: silver; padding: 10px; } </style> <script type="text/javascript"> $(function(){ $(".draggable").draggable({stop: function(e, ui){ $.ajax({ type: "POST", url: "pagina.php", data: "assex="+ui.offset.left+"&assey="+ui.offset.top+"&id="+ui.helper.get(0).id, success: function(prelevato){ alert("Salvata!. Il server ha scritto: "+prelevato); }, error: function(){ alert("Salvataggio fallito!"); } }); }}); }); </script> </head> <body> <div id="draggable1" class="draggable">Muovimi (#draggable1)</div> <div id="draggable2" class="draggable">Muovimi (#draggable2)</div> </body> </html>
stessa cosa
Puoi indicare l'indirizzo in cui hai caricato la mia soluzione?
Le coordinate vengono inviate correttamente, se c'è un problema è nello script lato server.
Lo script php l'ho gia'sistemato, aveva ragione Karl il problema era li.Adesso cerco di inviare anche l'id al databese che mi serve per identificare il div che ha spedito le coordinate.
Poi devo fare una pagina che richiami le coordinate in base all'id e mi posizioni gli elementi dove li avevo lasciati. Avro'senz'altro bisogno di aiuto piu'in qua ,magari pero'potra'essere utile in fututo ad altri quindi lo posto con le modifiche gia'effettuate.
Codice PHP:
<?php
$connessione=mysql_connect("localhost", "my_fantacalciojarno","*******");
if(!$connessione){
die('Impossibile connettersi:'.mysql_error());
}
mysql_select_db("my_fantacalciojarno", $connessione);
$x1=$_POST['assex'];
$y1=$_POST['assey'];
$sql="insert into coordinate(x1,y1) values('".$_POST['assex']."','".$_POST['assey']."')";
$result=mysql_query($sql);
if(!$result){
die ('Errore:'.mysql_error());
}
mysql_close($connessione);
?>
-Da come hai scritto nel #20, i campi della tabella si chiamano "1_x" e "1_Y", mentre nella query si chiamano x1 e y1.
-Per evitare sql injection, ti consiglio di utilizzare la funzione mysql_real_escape_string()
-dovresti verificare l'esistenza dei parametri passati, ad esempio con la isset(), prima di utilizzarli.
Se ancora non va, usa degli echo a scopo di debug.
Ciao!
Ultima modifica di alemoppo : 29-01-2012 alle ore 16.09.15
regolamento altervista_______________ regolamento forum
Alemoppo non ci si capisce mai io e te. :)
Il problema era il php ma adesso va bene.Risolto questo il php dovra'sicuramente essere migliorato e adesso mi ci posso mettere.Quindi ci sentiamo presto :P
Per i vecchi parametri ho risolto inviando anche l'id a database e impostato come chiave primaria...non basta?A me funziona!
Adesso devo recuperare i dati da database, mi collego..
Ora viene il bello.Devo associare le coordinate x e y a un div tramite id.Codice PHP:
<?
db_host="localhost";
db_user="fantacalciojarno";
db_password="*****";
db_database="my_fantacalciojarno";
$connessione=my_sql_connect($db_host,$db_user,$db_password);
mysql_select_db(db_database,$connessione)or die;
$query="SELECT * FROM coordinate";
$risultati=mysql_query($query);
Credo che sia meglio usare FOREACH?Consigli ,suggerimenti o altro?
Apro una nuova discussione o mi sposti Alemoppo?
Ultima modifica di fantacalciojarno : 30-01-2012 alle ore 19.20.14
Stampi nel css i valori... Non capisco il problema.
Per leggere i valori, dopo la query che hai fatto, usa mysql_fetch_assoc() o simili (mysql_fetch_row(), mysql_fetch_array(), ....).
Ciao!
Ultima modifica di alemoppo : 02-02-2012 alle ore 01.04.53
regolamento altervista_______________ regolamento forum
se schiacci il tasto Stamp/R sist l'immagine del monitor viene catturata poi la incolli su paint per es. e la salvi... Forse non è quello che cerchi ma è la soluzione più semplice!
regolamento altervista_______________ regolamento forum
No dai stamp è davvero brutto.Per leggere i valori sono andato avanti cosi:
Poi ho creato uno style.css che ho rinominato style.phpCodice PHP:
<?php
$username="user";
$password="*****";
$database="my_db";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("Impossibile selezionare il database.");
$query="SELECT * FROM coordinate";
$risultati=mysql_query($query);
$num=mysql_numrows($risultati);
mysql_close();
$i=0;
while ($i < $num) {
$id=mysql_result($risultati,$i,"id");
$x1=mysql_result($risultati,$i,"x1");
$y1=mysql_result($risultati,$i,"y1");
$i++; }
e collegato alla pagina principale tramite:Codice PHP:
<?php
header("Content-type: text/css; charset: UTF-8");
$id=mysql_result($risultati,$i,"id");
$x1=mysql_result($risultati,$i,"x1");
$y1=mysql_result($risultati,$i,"y1");
?>
div
{
width:150px;
height:80px;
margin-top: <?php echo $y1;?> +'px';
margin-left: <?php echo $x1;?> +'px';}
}
<link rel="stylesheet" type="text/css" href="style.php">
Ovviamente non funziona per adesso!Forse ho anche complicato il tutto?
Ultima modifica di fantacalciojarno : 02-02-2012 alle ore 19.24.25
Devi mettere il tutto nella pagina "style.css" (intendo anche la query). Inoltre, devi scrivere (in css) un id alla volta ad ogni ciclo, con le coordinate corrispondenti.
Ciao!
regolamento altervista_______________ regolamento forum