[CF] Variabele naam in query

Pagina: 1
Acties:

  • Roeligan
  • Registratie: December 2001
  • Laatst online: 22-07-2025
code:
1
2
3
4
5
6
7
8
9
10
<cfloop query="getFields">
<cfquery name="addFields" datasource="portcall_admin">
update  print_fields
set x = #attributes.name_x#,
    y = #attributes.name_y#
where   type = '#attributes.list#'
and typeID = #attributes.id#
and name = '#name#'
</cfquery>
</cfloop>


Hier worden de x en y coördinaten opgeslagen van een layer uit het vorige scherm. Probleem is dat er meerdere kunnen zijn, met elk een andere naam.

Ik heb bijvoorbeeld 2 layers piet en jan, ik heb dan in hidden form velden met als naam jan_x en jan_y (en deze ook weer voor layer piet).

Als er gesubmit wordt naar de volgende pagina wordt bovenstaande query uitgevoerd.
waar nu dus staat #attributes.naam_x# moet dus staan #attributes.jan_x#

Iemand een idee....loop een beetje vast 8)7

A real man fears not mortality for it's death, he fears mortality for it's lack of life!
RatPack #814


  • Roeligan
  • Registratie: December 2001
  • Laatst online: 22-07-2025
damn ik loop echt vast nu. Ik zit met CF 4.5 en dus kan ik in een cfscript nog geen functies aanroepen.

Situatie:
Scherm met div layers (een variabel aantal), deze kunnen verschoven worden (dragable) als dit is gedaan moeten de coordinaten (x en y dus) opgeslagen worden in de DB.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<script> 
// Sleepbaar maken van object (DIV class) 

    var mDown; 
    var objClassMove; 

    function getClick() 
    { 
        objClassMove = event.srcElement.className != ""; 

        if (objClassMove) 
        { 
            object = event.srcElement; 

            X = (event.clientX + document.body.scrollLeft) - 2; 
            Y = (event.clientY + document.body.scrollTop) - 2; 

            objLeft = object.offsetLeft; 
            objTop = object.offsetTop; 

            objEvtX = (X - objLeft);        // X coordinate of click on object 
            objEvtY = (Y - objTop);         // Y coordinate of click on object 
        } 
    } 

    function DragObj() 
    { 
        mDown = event.button == 1; 

        if (mDown && objClassMove) 
        { 
            X = (event.clientX + document.body.scrollLeft) - 2; 
            Y = (event.clientY + document.body.scrollTop) - 2; 

            Xpos = X - objEvtX; 
            Ypos = Y - objEvtY; 

            object.style.pixelLeft = Xpos; 
            object.style.pixelTop = Ypos; 
        } 
    } 

    document.onmousedown = getClick; 
    document.onmousemove = DragObj; 

//Lees de X en Y waarde uit van alle objecten (DIV classes) uit 
function tets(){ 
   var alldivs = document.getElementsByTagName('DIV'); 
   for (var i = 0; i < alldivs.length; i++) 
      { 
           var y = alldivs[i].offsetTop; 
         var x = alldivs[i].offsetLeft; 
         document.forms['printView'].elements[alldivs[i].id+'_x'].value = x; 
         document.forms['printView'].elements[alldivs[i].id+'_y'].value = y; 
      } 
} 
</script> 

<style type="text/css"> 
<!-- 
<cfloop query="getFields"> 
.<cfoutput>#name#</cfoutput> 
{ 
    position: absolute; 
   left: 250; 
   top: 250; 
    background-color: #EBEBEB; 
    border: solid 2 #004E98; 
    width: 150; 
    height: 25; 
    
    cursor: move; 
   text-align: center; 
} 
</cfloop> 
--> 
</style> 
<cfoutput> 

<form name="printView" action="#self#tools.printLayout&list=#attributes.list#&id=#getFields.id#" method="post"> 
<cfloop query="getFields"> 
<div class="#name#" id="#name#" title="#name#" name="#name#">#name#</div> 
<input type="text" name="#name#_x" value=""> 
<input type="text" name="#name#_y" value=""> 
<br> 
</cfloop> 
<input type="button" value="klik" onclick="tets()"> 
</form> 
</cfoutput>



Als ik dus klik op de knop waar de functie tets aanhangt worden er in de text velden de waardes gezet van de bijbehorende layers. Dit werkt, nu moet ik echter deze waardes in de DB zien te vrotten

Ik kom er niet meer uit 8)7 8)7 |:( 8)7 8)7

A real man fears not mortality for it's death, he fears mortality for it's lack of life!
RatPack #814


  • jochemd
  • Registratie: November 2000
  • Laatst online: 08-08 15:51
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<cfoutput> 

  <form name="printView" action="#self#tools.printLayout&list=#attributes.list#&id=#getFields.id#" method="post"> 
  <cfloop query="getFields"> 
    <div class="#name#" id="#name#" title="#name#" name="#name#">#name#</div> 
    <input type="text" name="#name#_x" value=""> 
    <input type="text" name="#name#_y" value=""> 
    <br> 
  </cfloop>
  <input type="hidden" value="#ArrayToList(getfields.name)#" name="divs">
  <input type="button" value="klik" onclick="tets()"> 
  </form> 
</cfoutput>


<cfloop list="form.divs" index="currentDiv">
  <cfquery ..>
    INSERT INTO table (div, x, y)
    VALUES ('currentDiv', form[currentDiv & "_x"], form[currentDiv & "_y"])
  </cfquery>
</cfloop>

  • Roeligan
  • Registratie: December 2001
  • Laatst online: 22-07-2025
hmm als ik deze probeer geeft ie de volgende melding:

Parameter 1 of function ArrayToList which is now "agents" must be an indexed object such as an array or a query column

Agents is de waarde van getfields.name (row 1 dus), maar das toch een query column :? Ik zie de fout niet echt....

A real man fears not mortality for it's death, he fears mortality for it's lack of life!
RatPack #814


  • Roeligan
  • Registratie: December 2001
  • Laatst online: 22-07-2025
Ik heb hem iig thx voor de hulp.

Oplossing:
De velden komen uit een query >> die doe ik ook in de actiepagina daar loop ik overheen:

code:
1
2
3
4
5
6
7
8
9
10
<cfloop query="getFields">
  <cfquery name="addFields" datasource="portcall_admin">
    update print_fields
    set x = #form[name & "_x"]#,
        y = #form[name & "_y"]#
    where name = "#name#"
    and type = '#attributes.list#'
and     typeID = #attributes.id#
</cfquery>
</cfloop>

A real man fears not mortality for it's death, he fears mortality for it's lack of life!
RatPack #814


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Uit de topicreport:
Oplossing gevonden topic kan/mag op slot
Dat is niet de manier waarop het hier werkt. Topics gaan op slot omdat ze niet voldoen aan de regels, niet omdat ze opgelost zijn. Als dat zo zou zijn dan zouden er bijvoorbeeld ook geen vragen meer gesteld kunnen worden, dus da's niet zo handig ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Roeligan
  • Registratie: December 2001
  • Laatst online: 22-07-2025
Ah ok... soz :S

A real man fears not mortality for it's death, he fears mortality for it's lack of life!
RatPack #814

Pagina: 1