Posizionare un div da coordinate database

  • Creatore Discussione Creatore Discussione zighy
  • Data di inizio Data di inizio

zighy

Utente Attivo
20 Gen 2012
96
0
0
Da database ricavo id,x,y che equivalgono al nome del div,e la distanza da top e left.Vorrei che i div nel body prendessero le posizione che gli passo.
Ho provato cosi ma non funziona...help

HTML:
<html>
<head>
<title>test</title>

<script type="text/javascript">

var id = <?php echo $id ;?>;
var x = <?php echo $x1 ;?>;
var y = <?php echo $y1 ;?>;

function set(id,x,y){
 document.getElementByID('id')style.margin-top= x + 'px';
 document.getElementByID('id')style.margin-left= y + 'px';
 }
</script>
	</head>

	<body onLoad="set()">

<div drag1></div>
 
Ultima modifica di un moderatore:
ciao
due cose:
una può essere che non hai scritto tutto il codice, ma non vedo da dove ricavi le coordinate dal db
la seconda, per vedere se php funzia , ho aggiunto un po di php al tuo
PHP:
<?php
$id = 333;
$x1 = 222;
$y1 =111;
?>
<html>
<head>
<title>test</title>
<script type="text/javascript">
var id = <?php echo $id ;?>;
var x = <?php echo $x1 ;?>;
var y = <?php echo $y1 ;?>;
function set(id,x,y){
document.getElementByID('id')style.margin-top= x + 'px';
document.getElementByID('id')style.margin-left= y + 'px';
}
</script>
</head>

<body onLoad="set()">

<div drag1></div>
se chiami il file e guardi con visualizza origine vedrai
Codice:
//....
var id = 333;
var x = 222;
var y = 111;
//......
è il js che non funzia, posta nella sua sezione
 
Le coordinate le ricavo da

PHP:
<?php
 $username="nomeuser";
 $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 va bene perchè se faccio un echo mi da tutto alla perfezione quindi credo sia il js che non fa il suo dovere per qualche motivo
 
Non si possono ricevere variabili php dentro lo script js

Codice:
<script type="text/javascript">
var id = <?php echo $id ;?>;
var x = <?php echo $x1 ;?>;
var y = <?php echo $y1 ;?>;
function set(id,x,y){
document.getElementByID('id')style.margin-top= x + 'px';
document.getElementByID('id')style.margin-left= y + 'px';
}
</script>


(Se non mi ricordo male)
ma puoi prenderle esternamente...


pagina-che-invia.php
Codice:
<?php
$var1=100; //valore x da database
$var2=200; //valore y da database

header('location: pagina-che-riceve2.html?var1='.$var1.'&var2='.$var2);
?>

pagina-che-riceve.html
Codice:
<script>
function leggi(){
ggg=this.location.search;
alert(ggg);
}
</script>
<body onload="leggi()">
</body>

esempio
http://max400scuola.altervista.org/aaa/a-php/pagina-che-invia.php
da questa pagina passi le variabili a quest'altra trascinandole tramite l'url.....

http://max400scuola.altervista.org/aaa/a-php/pagina-che-riceve.html?var1=100&var2=200
....e alla fine estrai le variabili dall'url e ci fai quello che vuoi
 
ciao @max
no max quello che ha fatto è giusto
var id = <?php echo $id ;?>;
è da js a php che non si possono tramettere variabili
volendo anche tutto il js potrebbe essere scritto con un echo php

p.s.
sempre @max
se guardi un tuo script da me modificato creo con php anche i nomi delle function
 
Ultima modifica:
Ma se quello che ho fatto è giusto avete idea di come mai non funziona?
In alternativa sto provando a dare uno stile al div da una pagina.php esterna che assume le variabile passate da database come margin-top e margin-left ma fino ad ora senza risultati....
 
eh si... effettivamente...funziona!

il gattaccio ha ragione mi legge le variabili dentro i tag -script- e -/script-
stasera doppia scatoletta per te!...ih ih ih

è da js a php che non si possono tramettere variabili
Per quanto riguarda il contrario da js a php l'unico modo è tramite stringa come ho fatto nell'esempio precedente e intercettarle con $_GET

Adesso provo lo script di zighy...intanto modificherei il margin-left in marginLeft=100; //senza 'px'
e poi nel body aggiungerei i 3 parametri...

comunque a dopo...
 
ecco qua....

http://max400scuola.altervista.org/aaa/a-php/zighy.php


il codice
PHP:
<?php
$id=333;
$x1=222;
$y1=111;
?>

<html>
<head>
<title>test</title>

<script type="text/javascript">
function carica_dati(){
var idn = <?php echo $id; ?>;
var x=<?php echo $x1; ?>;
var y=<?php echo $y1; ?>;
alert(idn);
alert(x);
alert(y);
xx=eval(x);
yy=eval(y);
sett();
}
function sett(){
document.getElementById('idn').style.marginTop=xx;
document.getElementById('idn').style.marginLeft=yy;
}
</script>
</head>

<body onload="carica_dati()">

<div id="idn">pppp</div>

</body>

ho messo una serie di alert per leggere i valori alla fine il div si sposta in base a quei valori


dimenticavo c'erano un bel po di errori nel tuo script zighy
Codice:
document.getElementByID('id')style.margin-top= x + 'px';
in
Codice:
document.getElementById('id').style.marginTop=x;
ovviamente bisogna by-passare la variabile x con eval e diventa
...marginTop=xx; //valore by-passato xx=eval(x);
 
Ultima modifica:
Potrebbe funzionare.L'unica cosa è che il database prende le coordinate con offset.top e offset.left che a quando pare non sono la stessa cosa di marginTop quindi il div non va dove dovrebbe.Che ne pensi?

NO FERMI TUTTI

colpa mia!Seguiranno nuove cominicazione :)
 
Ultima modifica:

Discussioni simili