Div verslepen werkt niet

Status
Niet open voor verdere reacties.

111milan111

Gebruiker
Lid geworden
10 jan 2009
Berichten
29
Hallo beste Helpmij leden,

Ik heb een scriptje gemaakt waarbij je een div met tekst kan verslepen. Als je op move zou klikken, zou de tekst die eronder staat mee moet moeten gaan met de muis etc. Alleen als er 2 of meerdere divjes staan, kun je alleen het divje met het hoogste id verplaatsen.
Voorbeeld: www.menatwar.one2xs.com/sitemaker2/edit.php?id=1

Code:
PHP:
 <?php

/**
 * @author Milan Drossaerts
 * @mail -
 * @uses ONLY BY -
 * @rights License, ONLY USED BY-
 * @copyright 2009
 */
include ("config.php");
$id = "";
if (isset($_GET['id'])&& ctype_digit($_GET['id']))
{
    $id = $_GET['id'];
}else{
    die("VERKEERDE GEGEVENS, MYSQL GEBLOKKEERD");
}
?>
<style>
a {
 text-decoration: none;    
 color: black;
}

/* ----- CSS ----- */

*{
    margin:0;
    padding:0;
}
body{
    margin:10px;
    font-size:80%;
    font-family:"Lucida Grande", Tahoma, sans-serif;
}
p{
    margin:0 0 1em 0;
}
a img{
    border:none !important;
}
#container{
    margin:0 auto;
    width:500px;
    padding:40px;
    text-align:left;
    background-color:#fff;
}

#lightbox h2{
    margin:0 0 1em 0;
}
#lightbox h3{
    color:#FF713F;
}
#lightbox.done p{
    color:#333;
}

#form{
    text-align:left;
    margin:25px;
}
#form ul{
    list-style:none;
}
#form li{
    margin:0 0 1em 0;
}
#form textarea{
    width:100%;
    height:150px;
}

#definition{
    margin:25px;
}
.highlight{
    background-color:#FEFFAF;
}
/* - - - - - - - - - - - - - - - - - - - - -

Title : Lightbox CSS
Author : Kevin Hale
URL : http://particletree.com/features/lightbox-gone-wild/

Created : January 13, 2006
Modified : February 1, 2006

- - - - - - - - - - - - - - - - - - - - - */

#lightbox{
    display:none;
    position: absolute;
    top:50%;
    left:50%;
    z-index:9999;
    width:500px;
    height:300px;
    padding:10px;
    margin:-220px 0 0 -250px;
    border:1px solid #fff;
    background:#FDFCE9;
    text-align:left;
}
#lightbox[id]{
    position:fixed;
}

#overlay{
    display:none;
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    z-index:5000;
    background-color:#000;
    -moz-opacity: 0.8;
    opacity:.80;
    filter: alpha(opacity=80);
}
#overlay[id]{
    position:fixed;
}

#lightbox.done #lbLoadMessage{
    display:none;
}
#lightbox.done #lbContent{
    display:block;
}
#lightbox.loading #lbContent{
    display:none;
}
#lightbox.loading #lbLoadMessage{
    display:block;
}

#lightbox.done img{
}
</style>
<script type="text/javascript" src="add_ubb.js"></script>
<script type="text/javascript" src="lightbox_1.js"></script>
<script type="text/javascript" src="lightbox_2.js"></script>
<script type="text/javascript">
function geklicked() {
    this.mover = new mover;
    document.onmousemove = this.mover.move;
}

function losgelaten() {
    this.mover = null;
    document.onmousemove = null;
}

function mo() {
    this.mover = null;

    this.geklicked = geklicked;
    
    this.losgelaten = losgelaten;

}

function mover() {
    var divx = null;
    var divy = null;

    this.move = function(e) {

        var posx = 0;
        var posy = 0;
        if (!e) var e = window.event;
        if (e.pageX || e.pageY)
        {
            posx = e.pageX;
            posy = e.pageY;
        }
        else if (e.clientX || e.clientY)
        {
            posx = e.clientX + document.body.scrollLeft;
            posy = e.clientY + document.body.scrollTop;
        }
        <?php
        $sql2 = mysql_query("SELECT * FROM admin WHERE pageid = '" . $id . "'") or die(mysql_error());
        while($fetch = mysql_fetch_assoc($sql2))
        {
           ?>
            var floatdiv = document.getElementById("<?php echo $fetch['id']; ?>");
        
        if (!divx) {
            divx = posx - parseInt(floatdiv.style.left);
            divy = posy - parseInt(floatdiv.style.top);
        }
        
        //document.getElementById("<?php echo $fetch['id']; ?>").style.position = 'absolute';
        floatdiv.style.top = posy - divy;
        floatdiv.style.left = posx - divx;
        
        document.getElementById("outputtop<?php echo $fetch['id']; ?>").value = posy ;
        document.getElementById("outputleft<?php echo $fetch['id']; ?>").value = posx;
        <?php
        }
        ?>
    }
    
}
</script>
<?php
$iQuery = mysql_query("SELECT * FROM admin WHERE pageid = '" . $id . "' AND soort = '0'") or die(mysql_error());
$tQuery = mysql_query("SELECT * FROM admin WHERE pageid = '" . $id . "' AND soort = '1'") or die(mysql_error());
?>
<div style="position: absolute; top: 0px; left: 0px; width: 100%; background: url(editor_background.png); height: 20px;"><a href="editor_tekst_invoegen.php" class="lbOn"><center><img src="img/textfield_add.png" border="0" /><strong>Voeg tekst toe</strong></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#"><img src="img/image_add.png" border="0" /><strong>Voeg een afbeelding toe</strong></a><form action="" method="POST"><input type="submit" name="submit" value="Opslaan" /></form></center></div><br /><br />
<?php
while ($iFetch = mysql_fetch_assoc($iQuery))
{
    ?>
    <div id="<?php echo $iFetch['id'];?>" style="top: <?php echo $iFetch['top']; ?>px; left: <?php echo $iFetch['left']; ?>px; position: absolute;">
  <div onmouseup="e.losgelaten(); e = null;" onmousedown="e = new mo; e.geklicked();" style="margin: 0px; background-color: transparant; cursor: pointer; text-align: left;">Move
    <a href="deleteobject.php?id=<?php echo $tFetch['id']; ?>" class="lbOn" onclick="document.getElementById('<?php echo $iFetch['id']; ?>').style.visibility='hidden' <?php  ?>">[x]</a>
  </div>
  <img src="<?php echo $iFetch['afbeeldingurl']; ?>" border="0" />
</div>
    <?php
}
while ($tFetch = mysql_fetch_assoc($tQuery))
{
    ?>
    <div id="<?php echo $tFetch['id'];?>" style="top: <?php echo $tFetch['top']; ?>px; left: <?php echo $tFetch['left']; ?>px; position: absolute;">
  <div onmouseup="e.losgelaten(); e = null;" onmousedown="e = new mo; e.geklicked();" style="margin: 0px; background-color: transparant; cursor: pointer; text-align: left;">Move
    <a href="deleteobject.php?id=<?php echo $tFetch['id']; ?>" class="lbOn" onclick="document.getElementById('<?php echo $tFetch['id']; ?>').style.visibility='hidden'">[x]</a>
  </div>
  <?php echo $tFetch['tekst']; ?>
</div>
    <?php
}
?>

Ik hoop dat iemand me kan helpen, heb het namelijk dringend nodig..
 
Fatal error: Cannot redeclare layoutboven() (previously declared in /home/menatwar/domains/menatwar.one2xs.com/public_html/sitemaker2/config.php:29) in /home/menatwar/domains/menatwar.one2xs.com/public_html/sitemaker2/config.php on line 33
 
Wat maakt jou zo speciaal, dat jij geen <html>, <head> en <body> tags hoeft te gebruiken? ;)
 
Als je een grotere kans wilt dat het werkt, moet je in ieder geval <html>-, <head>-, <body>tags en een geldig doctype toevoegen.
 
Dat heeft er niks mee te maken...

Ik wil graag dat de oplossing voor het script wordt gegeven, xHtml strict kan ik volgens de rest van het systeem nog niet doen..
 
Het kan wel zijn dat het er "niks" me te maken heeft, maar zolang de code niet klopt, zou het heel goed kunnen dat je straks veel moeite doet om het werkend te krijgen in bijvoorbeeld FireFox en dan klopt er in andere browsers nog niks van...

Maargoed, als je mijn advies in de wind wilt slaan, ik houd je niet tegen.
 
Ik denk niet dat je het helemaal snapt, met php wordt op een andere pagina verschillende dingen opgehaald... Maar Javascript moet worden uitgevoerd en werkend zijn, omdat op de originele pagina (dus niet edit.php, daar staat niks op) nog veel meer dingen worden uitgevoerd.. Dus als javascript werkt, worden die errors allemaal opgelost..
 
De errors die komen, hebben niets te maken met JavaScript en die worden ook niet opgelost als JavaScript werkt. Het zijn namelijk gewoon fouten in de HTML code die je geschreven hebt.

Ik geef je nog één tip en dan vind ik het mooi geweest. Dump alle javascript die je nu hebt, zorg dat alle HTML code goed is, dus GEEN errors meer, en neem dan bijvoorbeeld http://script.aculo.us/ om de drag and drop actie erin te zetten. Het is niet nodig om het wiel opnieuw uit te vinden me een handgeschreven script...
 
En je denkt dat dat aan het script ligt?

Heb je de fouten er eerst uitgehaald?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan