Nått sånthär:
aBildids = Split(bildids,":")
For i = 0 To Ubound(aBildids)
If Cstr(nyttvarde) = Cstr(aBildids(i)) Then
chk = true
Exit For
End If
Next
If NOT chk Then bildids & ":" & nyttvarde
28 svar · 372 visningar · startad av brw
Hej
Jag har en variabel med värden som är kolon-separerade som t ex ser ut såhär:
bildids= 121:145:101:14:18
sedan får jag ett värde från ett forumlär så vill jag kolla om det redan finns med i den här variabeln och det är det som är frågan.
Tillexempel:
nyttvarde = "167" (från formular)
Hur jämför jag om jag får tex 167 som ovan, om det redan finns med i bildids variabeln annars ska den lägga till den längst ut på raden med kolonseparering.
If nyttvarde "finns med i" bildids Then
'den finns redan med
Else
bildid = bildid &":"&nyttvarde
End If
Nått sånthär:
aBildids = Split(bildids,":")
For i = 0 To Ubound(aBildids)
If Cstr(nyttvarde) = Cstr(aBildids(i)) Then
chk = true
Exit For
End If
Next
If NOT chk Then bildids & ":" & nyttvarde
Alltså såhär ser det ut.. hade inte koden först.
Det fungerar inte.. jag får liksom med ett ":" före första värdet.. alltså om jag kommer in på sidan och inte har något värde så sätter den såhär: extrabilderform2 = extrabilderform2 &":"&extrabilderform
jag har försökt med alla möjliga variblar längre ned.. isnumeric mm..
alltså om jag kommer in på sidan utan värde och väljer ett och sidan laddas om så blir värdet typ:
vardet = :113:234:67
om det nu kan vara det som stör ut att det inte fungerar?
Denna skickas med när man väljer ett nytt värde:
extrabilderform = FixaTecken(Request.Form("extrabilderform"))
Denna skickas med som hidden hela tiden:
extrabilderform2 = FixaTecken(Request.Form("extrabilderform2"))
If IsNumeric(extrabilderform) Then
If Len(Trim(extrabilderform)) <= 0 Then
If extrabilderform <> "ej" Then
extrabilderform = Cint(extrabilderform)
aBildids = Split(extrabilderform2,":")
For i = 0 To Ubound(aBildids)
'If Cstr(extrabilderform) = Cstr(aBildids(i)) Then
If Cint(extrabilderform) = Cint(aBildids(i)) Then
chk = true
Exit For
End If
Next
If NOT chk Then
extrabilderform2 = extrabilderform2 &":"&extrabilderform
End If
End If
End If
End If
Borde inte denna koll:
If Len(Trim(extrabilderform)) <= 0
se ut så här istället:
If Len(Trim(extrabilderform)) >= 0
dvs, du kollar om extrabilderform är större än eller lika med noll och ej tvärtom....
plus, denna if-sats:
If extrabilderform <> "ej" Then
kan du ta bort eftersom det ej kommer att komma in någon sträng då du kollar om det är ett numeriskt värde före denna koll.
cya,
PatrikB
Jihooo nu har jag fått det att fungera så långt men nu har jag en liten till fundering som jag skulle vilja ha hjälp med.
Låt oss säga att strängen ser ut såhär:
extrabilderform = 114:118:45:67:89
och då när jag plockar fram dessa poster med hjälp av en loop som splittar upp det så kommer ju posterna komma i den ordning som står dvs. först nr 114, 118, 45 osv...
Om jag nu i redigeringsläget vill med hjälp av typ länkar ändra ordningen på dem.
Tillexempel byta plats på 45 och 118 eller 89 och 67.
Som jag har nu så listar jag upp alla i den ordning som strängen är i redigeringsläget. Går det att lösa detta på något smidigt sätt med nån enkel kodsnutt?
Vore mycket tacksam om någon kan hjälpa mig med detta.
Säg till om ni inte förstår så ska jag försöka beskriva bättre.
/brw
Lite oklart vad du menar. Vill du byta plats på två godtyckliga element eller vill du ha någon speciell sortering?
Om du vill byta plats så kan du använda denna rutin
sub swapp(bef,aft,vals)
dim befind,aftind,i
befind = -1
aftind = -1
for i = 0 to Ubound(vals)
if vals(i) = bef then
befind = i
elseif vals(i) = aft then
aftind = i
end if
if befind >= 0 and aftind >= 0 then
vals(aftind) = bef
vals(befind) = aft
exit sub
end if
next
end sub
anropas med
swapp 45,118,aBildIds
Förstod inte riktigt din den där..
Kolla på denna bild http://195.198.110.218/ordningspryl2.gif så kanske du förstår bättre vad jag menar så kanske vi kan få fram en lösning.
Jag missförstod fullständigt vad du var ute efter. Det låter som du får skriva något i javascript för att hantera det. (Jag kan för lite om javascript för att kunna hjälpa.)
Ok! Jag har pulat lite granna nu och bestämt mig för att jag ska ha så att man får lägga in dem i den ordning man vill ha dem. Men man måste ju självklart kunna plocka bort dem oxå.. och då tänkte jag att man på det sista värdet i strängen .. låt oss säga att strängen ser ut såhär:
bildid = 34:67:78
så listar den ju upp dem med en vanlig loop med for each efter jag splittat upp dem...
Då vill jag att man skall kunna köra nån funktion som känner av typ right på sista siffervärdet på strängen fram till kolonet alltså ":78" skall gå att ta bort.
På så vis skulle man kunna skapa en länk på som heter "Ta bort" men bara då på den som är den sista i ordningen.
Problemet är bara hur jag ska få den att känna av vilken som är sista och hur jag ska kunna trimma bort det.
bildids = Trim(right(bildids,:,-3)) Detta blir ju fel eftersom ID kan ju vara i princip hur långt som helst..
nån som är bra på det?
/brw
Ingen som har nån idé om hur jag ska göra?
vad är din fråga egentligen?
Jag behöver hjälp med att trimma en variabel lite.. kanske var en aning oklar i mitt förra inlägg
Ska försöka ta det kortfattat.
Jag har följande kod:
extrabilder = 45:50:67:89:15
If instr(extrabilder, ":") > "" then
arrTEST = split(extrabilder, ":")
For each siffra in arrTEST
response.write siffra
Next
Det jag behöver veta är vilket nummer som kommer sist i ordningen samt hur jag ska bära mig åt med en kod för att kunna plocka bort det. Antar att det är enklare att plocka bort en från slutet på variabeln än att ta en mitt i?
Alltså
Jag behöver kunna veta vilken som blir den sista
extrabilder = 45:50:67:89:15
sistasiffran = Right (extrabilder,: numeric)
eller nå hehe =)
samt hur jag plockar bort den från variabeln så att om jag tar bort nr 15 så ska variabeln bli:
extrabilder = 45:50:67:89
och då ska den tala om att 89 är sist och om jag plockar bort den så ska det självklart bli:
extrabilder = 45:50:67
och så vidare..
Hoppas du är med i svängarna nu..
/brw
det är inga problem att plocka bort en mitt i heller.
if instr(extrabilder, siffran & ":") then
extrabilder = replace(extrabilder, siffran & ":", "")
else
extrabilder = replace(extrabilder, siffran, "")
end if
vet inte om du hade mer bekymmer än så?
Jag måste skicka med värdet via en submittknapp för att behålla de andra värdena som ligger som hidden i formuläret.
Frågan är då nu hur jag kollar vilken som det kommer ifrån smartast.
Knappen ser ut såhär:
<%
extrabilder = 50:55:66:18
siffran som står är id på posten.. en sån här knapp listas alltså på varje post som finns i variabeln:
If instr(extrabilder, ":") > "" then
arrTEST = split(extrabilder, ":")
For each siffra in arrTEST
%>
<INPUT TYPE=image NAME="tabortbild-<%=siffra%>" SRC="images/papperskorg.gif" WIDTH=16 HEIGHT=16 BORDER=0 ALT="Ta bort">
<%
Next
%>
och så vidare...
Kan jag då på mottagande sida köra nå i denna stil:
If request.form("tabortbild-*") <> "" Then
(där * naturligtvis på något vis ska vara id't från variabeln)
if instr(extrabilder, request.form("tabortbild-") & "-") <> "" Then
extrabilder = replace(extrabilder, siffran & ":", "")
else
extrabilder = replace(extrabilder, siffran, "")
end if
End If
hrrg?
varför använder du <> "" med instr()????
instr returnerar tal, teckenposition där sträng2 återfinns i sträng1.
hmm hehe jag vet inte.. visste inte vad instr returnerade och hur det fungerar..
hur bör jag skriva då för att den ska köra som jag vill? nu kommer det från ett formulär som ska trimma bort det som står till höger om "-" det är det den ska ta bort från extrabildersträngen alltså siffervärdet där.
Alltså det som kommer från submitknappen eller rättare sagt submitknappens namn är följande:
tabortbild- +idnummret..
hur ska jag kolla ifall jag tryckt på någon av dom i det här fallet 4 submitknappar som jag hade på sidan innan jag skickade formuläret.
När sedan mottangande sida vet ifall jag tryckt på någon utav knapparna så ska den ju börja ta bort.
då måste den ju trimma bort "tabortbild-" och bara få fram siffervärdet så att jkag kan köra nedanstående kod som jag fick av dig:
if instr(extrabilder, siffran & ":") then
extrabilder = replace(extrabilder, siffran & ":", "")
else
extrabilder = replace(extrabilder, siffran, "")
end if
JAg kan ju inte köra med value på en submitknapp när jag har en bild det är ju det som är lite klurigt.. annars hade jag ju bara kunnat kolla med en enkel ifsats:
If request.form("tabortbild") <> "" Then
'Utför det som skall göras
siffran = request.form("tabortbild")
if instr(extrabilder, siffran & ":") then
extrabilder = replace(extrabilder, siffran & ":", "")
else
extrabilder = replace(extrabilder, siffran, "")
end if
end If
varför skickar du konstiga saker i namnet på fältet? varför inte bara ett värde som säger vad du ska ta bort för något?