03. februar 2005 - 09:19Der er
11 kommentarer og 1 løsning
Replace i hiddenfield - hvordan?
Hej
Jeg har en asp side hvorpå jeg henter noget tekst ud fra min database og lægger det i et hiddenfield. Nu er mit problem at der i den tekst som lægges i hiddenfield nogle gange står f.eks. 15'' TFT skærm, hvilket giver nogle problemer i forhold til min asp kode.
Så er mit spørgsmål - hvordan får jeg lavet en replace funktion på lige præcis det hiddenfield som indeholder teksten?
Min Kode ::::START:::: <%@ Language=VBScript %> <% Option Explicit Dim Conn, DSN, sltid, strSQL, rs, column, vareID, intVareId Response.Buffer=True %> <!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil--> <!-- #include file="adovbs.inc" --> <html>
<head> <title>Vis varer</title> <Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<script LANGUAGE="JavaScript"><!--tjekker om indtastede tal er et tal og om det negativt/blank
function AbortEntry(sMsg, eSrc) { window.alert(sMsg); // set focus and highlight to the offending error eSrc.focus(); //eSrc.select(); }
function HandleError(eSrc) { // make sure the input is a numeric value var val = parseInt(eSrc.value); if (isNaN(val)) { return AbortEntry("Du skal indtaste antal varer.", eSrc); }
// make sure the value is not negative if (val <= 0) { return AbortEntry("Du skal indtaste antal varer.", eSrc); } }
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Det kunne evt være et linjeskift problem. Er der linjeskift i "strProdBeskriv"???
Løsningen på det problem er at udskifte linjeskift med en kode, som man så kan skifte tilbage til. Her plejer jeg at bruge \n (som jo er JavaScript koden for linjeskift). Denne funktion burde samle det på en linje:
function OneLine(funkText) OneLine = server.HTMLencode(replace(funkText,vbcrlf,"\n")) end function
Problemet er så hvis samme kode rent tilfældig står i teksten, men så kan man bruge en anden kode.
Jeg tror ikke det er på grund af linieskift, for de bliver skiftet ud, når jeg lægger en tekst ind i databasen.
Jeg tror måske jeg får en fejl, fordi der også er , (komma) i den tekst som bliver putte i mit hiddenfield
Et eksempel på et udsnit af en tekst: 3 x USB 2.0 porte, 1xFirewire, 1xParallel port SD Kortlæser indbygget 1 x pcmcia port, 1 x IR port (infrarød) 10/100 Mbit internt netværkskort 56K V.92 modem
Men hvordan skal jeg så sætte server.HTMLEncode() ind i denne linie <input type="hidden" name="strOrderItem" value="<%= intProdID %>,<%= intQuant %>,<%= strProdName %>,<%= strProdBeskriv %>,<%= strProdModel %>"> når det er strProdBeskriv det skal bruges på?
Nu er er bare opstået et andet problem. Når jeg gemmer disse oplysninger fra mine hiddefields i databasen, så bliver teksten i strProdBeskriv delt hvis der er komma i den.
For at tage et eksempel Beskrivelsen er: 3 x USB 2.0 porte, 1xFirewire, 1xParallel port SD Kortlæser indbygget 1 x pcmcia port, 1 x IR port (infrarød) 10/100 Mbit internt netværkskort 56K V.92 modem ...men det er kun [3 x USB 2.0 porte] der bliver gemt i beskrivelsesfeltet i det næste felt som hedder model bliver [1xFirewire] gemt i stedet for den tekst som ligger i (strProdModel)
Dette er den side der gemmer oplysningerne i databasen ::::START:::: <%@ Language=VBScript %> <!-- #include file="db.asp" --> <!-- #include file="adovbs.inc" --> <!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<% dim rsOrder dim rsItem %> <% set Conn = Server.CreateObject("ADODB.Connection") Conn.Open ConString
for each item in Request.form("strOrderItem") set rsProduct = Server.CreateObject("ADODB.Recordset") rsProduct = "SELECT * FROM vare WHERE vareid=" & intProdID next
Session.abandon
end if
%>
<% If Not rsOrder.EOF Or Not rsOrder.BOF Then 'kører igennem rsOrder som indeholder alle oplysninger om kunde + ordrenr.
'MAIL TIL KUNDE Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.CharSet = 1
Mailer.FromName = "Datronic NetButik" 'Afsender navn Mailer.FromAddress = "noreply@Datronic.dk" 'Afsender e-mail Mailer.RemoteHost = "mail.datronic.dk" 'afsender mail Mailer.AddRecipient request("strFirst"), request("strEmail") ' Kunde navn og e-mail (hvor mailen sendes til) Mailer.AddBCC "Datronic ApS", "bestil@datronic.dk" 'e-mail som kopi af mailen sendes til (butikkens mail) Mailer.Subject = "Din ordre hos Datronic Aps - ordrebekræftelse" 'Emne i mail
tekst = "" linie = vbCrLf
if request("strFirst") <> "" then 'hvis fornavn ikke er blak udskrives teksten hej navn tekst = tekst & "<font face='verdana' size='2'><b>Hej " & request("strFirst") & linie & linie end if
tekst = tekst & "</font></b><br><font face='verdana' size='1' color='black'>Bemærk! Du kan ikke besvare denne mail.</font>" & linie & linie tekst = tekst & "<br><br><font face='verdana' size='2'>Tak! Fordi du handlede hos Datronic ApS<br>"& linie & linie tekst = tekst & "Følgende ordre er blevet modtaget:</font>" & linie & linie tekst = tekst & "<br><br><font face='verdana' size='1'><strong>Ordrenr: </strong>" & request("intOrderID") & linie & linie & linie & linie 'ordrenr udskrives tekst = tekst & "<br><br><strong>Kundeoplysninger: </strong>" & linie & linie & linie & linie tekst = tekst & "<br>" & request("strFirst") & " " & request("strLast") & linie & linie & linie & linie 'fornavn og efternavn på kunde udskrives tekst = tekst & "<br>" & request("strAddress1") & linie & linie & linie & linie ' kundeadresse tekst = tekst & "<br>" & request("strPostalCode") & " " & request("strCity") & linie & linie & linie & linie 'postnr og by tekst = tekst & "<br>" & request("strCountry") & linie & linie & linie & linie 'land tekst = tekst & "<br>Tlf.: " & request("strPhone") & linie & linie & linie & linie 'kundens telefonnummer tekst = tekst & "<br><br><strong>E-mail: </strong>" & linie & linie & linie & linie tekst = tekst & "<br>" & request("strEmail")& linie & linie 'kunde e-mail tekst = tekst & "<br><br><strong>Betalingsform: </strong>" & linie & linie & linie & linie tekst = tekst & "<br>" & request("strBetaling")& linie & linie 'den valgt betalingsform tekst = tekst & "<br><br><strong>Leveringsadresse: </strong>" & linie & linie & linie & linie tekst = tekst & "<br>" & request("strShipAdresse") & "</font>"& linie & linie 'leveringsadressen 'End If 'If Not rsItem.EOF Or Not rsItem.BOF Then 'kører igennem rsItem, som indeholder oplysninger om varer i ordren
tekst = tekst & "<br><br><font face='verdana' size='1'><strong>Ordreindhold: </strong></font>" & linie & linie & linie & linie tekst = tekst & "<table width='470'><tr>" tekst = tekst & "<td width='13%'><font face='Verdana' size='1'>Antal</font></td>" tekst = tekst & "<td width='13%'><font face='Verdana' size='1'>Vare ID</font></td>" tekst = tekst & "<td width='44%'><font face='Verdana' size='1'>Vare</font></td>" tekst = tekst & "<td width='15%' align='right'><font face='Verdana' size='1'>Pris pr stk</font></td>" tekst = tekst & "<td width='15%' align='right'><font face='Verdana' size='1'>Pris i alt</font></td>"
tekst = tekst & "<tr>" tekst = tekst & "<td width='13%' align='left' valign='middle' nowrap><font face='Verdana' size='1'>" & arrQuant(i) & "<br></font></td>" tekst = tekst & "<td width='13%' align='left' valign='middle' nowrap><font face='Verdana' size='1'>" & arrId(i) & "<br></font></td>" tekst = tekst & "<td width='44%' align='left' valign='middle' nowrap><font face='Verdana' size='1'>" & arrstrProdName(i) & "<br></font></td>" tekst = tekst & "<td width='15%' align='right' valign='middle' nowrap><font face='Verdana' size='1'>" & arrPris(i) & "<br></font></td>" tekst = tekst & "<td width='15%' align='right' valign='middle' nowrap><font face='Verdana' size='1'>" & arrintExtPrice(i) & "<br></font></td>" tekst = tekst & "</tr>" next tekst = tekst & "<tr><td colspan='4'><font face='Verdana' size='1'>Forsendelse</font></td>" tekst = tekst & "<td align='right'><font face='Verdana' size='1'><strong>" & request("intShipping") & "</strong></font></td></tr>" tekst = tekst & "<tr><td colspan='4'><font face='Verdana' size='1'>Kr. total i alt</font></td>" tekst = tekst & "<td align='right'><font face='Verdana' size='1'><strong>" & request("intTotal") & "</strong></font></td></tr></table>"
tekst = tekst & "<br><br><font face='verdana' size='2'>Med venlig hilsen"& linie & lilie & linie & linie tekst = tekst & "<br>Datronic ApS / NetButik</font>"& linie & linie & lilie tekst = tekst & "<br><font face='verdana' size='1'>Har du spørgsmål eller er der fejl vedr. din ordre, kontakt da venligst Datronic ApS på <a href='mailto:salg@datronic.dk.dk'><font color=black>salg@datronic.dk</font></a></font>"& linie & linie & linie 'tekst = tekst & "<br><br><font color=green>GLÆDELIG JUL</font> <font color=red>&</font> <font color=green>GODT NYTÅR </font>" 'tekst som kan sættes på ved specielle lejligheder fx. jul, ferie
Mailer.BodyText = tekst Mailer.ContentType = "text/html" Mailer.SendMail
'End If End If
rsOrder.Close set rsOrder = Nothing
rsItem.Close set rsItem = Nothing
Conn.Close set Conn = Nothing
%>
<html> <head> <title>Tak for din bestilling</title> <Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet --> <style type="text/css"> <!-- body { margin-top: 0px; margin-left: 4px; } --> </style> <style type="text/css"> <!-- .style1 {color: #FFFFFF} .style2 {color: #000098} --> </style> </head>
<body> <!--følgende tekst udskrives når ordren er blevet gemt i databasen og mail er sendt til kunde+butik--> <br><table width="670" cellpadding="0" cellspacing="0"> <tr> <td height="18" bgcolor="#545DB9" colspan="2"><span class="style1">Tak for din bestilling</span></td> </tr> <tr><td> </td></tr> <tr><td>Din ordre med ordrenr. <strong><span class="style2"><%= intOrderID %></span></strong> er blevet afsendt.<br> <!-- ordreid udskrives, så kunden kan se ordrenr/ordreid--> Du vil om kort tid modtage en e-mail med oplysninger omkring din ordre.</td></tr> <tr><td> </td></tr> <tr><td>Har du spørgsmål vedr. din ordre kontakt salg på <a href="mailto:salg@datronic.dk">salg@datronic.dk</a></a></td></tr> <tr><td> </td></tr> </table>
Men du kunne jo også oprette et hidden felt til hver i stedet: <input type="hidden" name="strOrderItem1" value="<%= intProdID %>"> <input type="hidden" name="strOrderItem2" value="<%= intQuant %>"> <input type="hidden" name="strOrderItem3" value="<%= server.HTMLEncode(strProdName)%>"> ...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.