472,356 Members | 1,947 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,356 software developers and data experts.

Replace commas in values in an array

Although this is a client side issue, I am also posting to asp.general
in case there is someway to do this only server side (which I would
prefer).

Here's my form:

<form method="post" action="<%=request.servervariables("Script_name")
%>"
<% for i - 0 to 4%>
Header: <input type="text" name="header" id="header<%=i%>"
onblur="function(this)"><br>
Description: <input type="text" name="description" id="description<%=i
%>" onblur="function(this)">
<% next%>
<input type="submit" value="Submit">
</form>

When the data gets returned it's something like:
header: "socks, shoes, pizza, cats, dogs"
description: "good for feet, wear with socks, cheese only, have lots
of hair, bark a lot"

Problem comes when the description or header have a comma. I need a
little javascript that will replace the comma with a semicolon client
side before it gets to
the server, preferably as they leave the field.

Any help with this would be much appreciated.

--
Adrienne Boswell at work
Administrator nextBlock.com
http://atlas.nextblock.com/files/
Please respond to the group so others can share

Apr 5 '07 #1
14 6903
Adrienne Boswell wrote on 06 apr 2007 in
microsoft.public.inetserver.asp.general:
Although this is a client side issue, I am also posting to asp.general
in case there is someway to do this only server side (which I would
prefer).
[...]
Problem comes when the description or header have a comma. I need a
little javascript that will replace the comma with a semicolon client
side before it gets to the server, preferably as they leave the field.
I doubt you can do anything serverside before it gets to the server,
Adrienne.

Clientside it is simple, just do a regex global replace.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Apr 5 '07 #2
Adrienne Boswell wrote:
Problem comes when the description or header have a comma. I need
a little javascript that will replace the comma with a semicolon
client side before it gets to the server, preferably as they leave
the field.
Assuming from your example that you want the expression for your onblur
handler, here is one way:

onblur="this.value=this.value.split(',').join(';') "

Another:

onblur="this.value=this.value.replace(/,/g,';')"

--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.
Apr 5 '07 #3

Dave Anderson wote:
Adrienne Boswell wrote:
Problem comes when the description or header have a comma. I need
a little javascript that will replace the comma with a semicolon
client side before it gets to the server, preferably as they leave
the field.

Assuming from your example that you want the expression for your onblur
handler, here is one way:

onblur="this.value=this.value.split(',').join(';') "

Another:

onblur="this.value=this.value.replace(/,/g,';')"
Dave, you're an officer, a genteman and a fine judge of women! Thanks
so much - works perfectly!

--
Adrienne Boswell at work
Administrator nextBlock.com
http://atlas.nextblock.com/files/
Please respond to the group so others can share

Apr 5 '07 #4
On Apr 6, 8:02 am, "Adrienne Boswell" <arb...@yahoo.comwrote:
Although this is a client side issue,
It is a server issue.

I am also posting to asp.general
in case there is someway to do this only server side (which I would
prefer).

Here's my form:

<form method="post" action="<%=request.servervariables("Script_name")
%>"
<% for i - 0 to 4%>
Header: <input type="text" name="header" id="header<%=i%>"
onblur="function(this)"><br>
Description: <input type="text" name="description" id="description<%=i
%>" onblur="function(this)">
<% next%>
<input type="submit" value="Submit">
</form>
Don't post server code to a group concerned with client scripting,
post whatever it is that the client gets. However you generate that
is up to you.

When the data gets returned it's something like:
header: "socks, shoes, pizza, cats, dogs"
description: "good for feet, wear with socks, cheese only, have lots
of hair, bark a lot"
Tell your users not to use commas and use normal validation
techniques.

Problem comes when the description or header have a comma. I need a
little javascript that will replace the comma with a semicolon client
side before it gets to
the server, preferably as they leave the field.
Client scripting is unreliable, deal with it at the server.

For luck, you can use something like:

<input onblur="this.value=this.value.replace(/,/g,';');" ... >
though you are better to do the replace onsubmit when you do the rest
of your client-side validation, users will likely get confused seeing
their commas turn into semi-colons after they leave the field. And if
scripting is disabled, not available or fails, you will still get
commas in the data.
--
Rob

Apr 6 '07 #5
"Adrienne Boswell" wrote:
Dave, you're an officer, a genteman and a fine judge of women!
Thanks so much - works perfectly!
I am glad to hear it. However...

....I feel I should echo RobG here in warning that security (and this
includes data integrity) really does belong on the server. So, if you are
inclined to agree, perhaps you would consider using this approach over on
the server side.

JScript ASP example:
(Request.Form("description").Item || "").replace(/,/g,";")
VBScript candidate:
Join(Split(Request.Form("description") & "",","),";")

--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.

Apr 6 '07 #6
On Apr 5, 6:02 pm, "Adrienne Boswell" <arb...@yahoo.comwrote:
Although this is a client side issue, I am also posting to asp.general
in case there is someway to do this only server side (which I would
prefer).

Here's my form:

<form method="post" action="<%=request.servervariables("Script_name")
%>"
<% for i - 0 to 4%>
Header: <input type="text" name="header" id="header<%=i%>"
onblur="function(this)"><br>
Description: <input type="text" name="description" id="description<%=i
%>" onblur="function(this)">
<% next%>
<input type="submit" value="Submit">
</form>

When the data gets returned it's something like:
header: "socks, shoes, pizza, cats, dogs"
description: "good for feet, wear with socks, cheese only, have lots
of hair, bark a lot"

Problem comes when the description or header have a comma. I need a
little javascript that will replace the comma with a semicolon client
side before it gets to
the server, preferably as they leave the field.

Any help with this would be much appreciated.

--
Adrienne Boswell at work
Administrator nextBlock.com
http://atlas.nextblock.com/files/
Please respond to the group so others can share
you could do it in javascript using regular expression. i believe
something like this would work:

var someStringVariable = "asdfasd asdf asdfa, asdfasdf asdksdas,
asdfas";
someStringVariable = someStringVariable.replace(/,/, ";");

i'd probably go about it a different way, though. i'd give each
<inputtag a unique name, so you dont have to worry about the values
being squashing into one value.

Apr 6 '07 #7
br************@gmail.com wrote:
you could do it in javascript using regular expression. i believe
something like this would work:

var someStringVariable = "asdfasd asdf asdfa, asdfasdf asdksdas,
asdfas";
someStringVariable = someStringVariable.replace(/,/, ";");
Don't just believe it, try it. Then you will notice that you need a global
flag.

--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.
Apr 6 '07 #8
Gazing into my crystal ball I observed "Dave Anderson"
<NY**********@spammotel.comwriting in
news:13*************@corp.supernews.com:
"Adrienne Boswell" wrote:
>Dave, you're an officer, a genteman and a fine judge of women!
Thanks so much - works perfectly!

I am glad to hear it. However...

...I feel I should echo RobG here in warning that security (and this
includes data integrity) really does belong on the server. So, if you
are inclined to agree, perhaps you would consider using this approach
over on the server side.

JScript ASP example:
(Request.Form("description").Item || "").replace(/,/g,";")
VBScript candidate:
Join(Split(Request.Form("description") & "",","),";")
I don't think that's going to work, here's why:

Let's say that request.form("numbers") = "1, 2, 3, 4" and request.form
("description") = "eggs, bacon, milk, butter"
numbersarr = split(request.form("numbers"))
descarr = split(request.form("description"),",")
for i = 0 to ubound(numbersarr)
response.write numbersarr(i) & "=" & descarr(i)
next

That works if the arrays are both the same size. If request.form
("description") = "eggs, milk, butter, sugar, flour" then you've got a
problem.

The form I am making has 10 rows of 5 items each, so that's why I'm doing
it client side.

--
Adrienne Boswell at Home
Arbpen Web Site Design Services
http://www.cavalcade-of-coding.info
Please respond to the group so others can share

Apr 6 '07 #9
Adrienne Boswell wrote on 06 apr 2007 in
microsoft.public.inetserver.asp.general:

I don't think that's going to work, here's why:

Let's say that request.form("numbers") = "1, 2, 3, 4" and request.form
("description") = "eggs, bacon, milk, butter"
numbersarr = split(request.form("numbers"))
numbersarr = split(request.form("numbers"),",")
descarr = split(request.form("description"),",")
if ubound(numbersarr)>=ubound(descarr) then
max = ubound(descarr)
else
max = ubound(numbersarr)
end if
for i = 0 to max - 1
....
for i = 0 to ubound(numbersarr)
response.write numbersarr(i) & "=" & descarr(i)
next

That works if the arrays are both the same size. If request.form
("description") = "eggs, milk, butter, sugar, flour" then you've got a
problem.
See serverside solution above.
The form I am making has 10 rows of 5 items each, so that's why I'm
doing it client side.
??

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Apr 6 '07 #10
Gazing into my crystal ball I observed "Evertjan."
<ex**************@interxnl.netwriting in news:Xns990AC9A31F8B5eejj99@
194.109.133.242:
Adrienne Boswell wrote on 06 apr 2007 in
microsoft.public.inetserver.asp.general:

>I don't think that's going to work, here's why:

Let's say that request.form("numbers") = "1, 2, 3, 4" and request.form
("description") = "eggs, bacon, milk, butter"
numbersarr = split(request.form("numbers"))

numbersarr = split(request.form("numbers"),",")
I know, my fingers were going too fast.
>
>descarr = split(request.form("description"),",")

if ubound(numbersarr)>=ubound(descarr) then
max = ubound(descarr)
else
max = ubound(numbersarr)
end if
for i = 0 to max - 1
....
>for i = 0 to ubound(numbersarr)
response.write numbersarr(i) & "=" & descarr(i)
next

That works if the arrays are both the same size. If request.form
("description") = "eggs, milk, butter, sugar, flour" then you've got a
problem.

See serverside solution above.
>The form I am making has 10 rows of 5 items each, so that's why I'm
doing it client side.

??
Like this:
<% for i = 0 to 10%>
<tr>
<td><input name="desc" id="desc<%=i%>" type="text"></td><td><input
type="text" name="numbers" id="numbers<%=i%>"></td>
</tr>
<% next%>
<input type="submit" value="Submit">
</form>

Without entering anything, but submitting the values would be:
desc = ,,,,,,,,,
numbers = ,,,,,,,,,

Multiple values for the same form element are separated by commas, ergo
the problem. If one of the values being returned has a comma in it, then
it will throw the count off, hence the need for the client side change.

--
Adrienne Boswell at Home
Arbpen Web Site Design Services
http://www.cavalcade-of-coding.info
Please respond to the group so others can share

Apr 7 '07 #11
Adrienne Boswell wrote on 07 apr 2007 in
microsoft.public.inetserver.asp.general:

[...]
>>The form I am making has 10 rows of 5 items each, so that's why I'm
doing it client side.

??

Like this:
<% for i = 0 to 10 %>
11 times ;-)
<tr>
<td><input name="desc" id="desc<%=i%>" type="text"></td><td><input
type="text" name="numbers" id="numbers<%=i%>"></td>
</tr>
<% next%>
<input type="submit" value="Submit">
</form>

Without entering anything, but submitting the values would be:
desc = ,,,,,,,,,
numbers = ,,,,,,,,,
try:

========= test1.asp ===============
<% response.write "Responses: " & request.form("desc") %>

<form method='post'>
<input name='desc'>
<input name='desc'>
<input name='desc'>
<input name='desc'>
<input name='desc'>
<input type='submit'>
</form>
================================
Multiple values for the same form element are separated by commas,
So it seems, but it is not comletely true, because:

========= test2.asp ===============
<% response.write "Responses: " & request.form("desc").count %>

<form method='post'>
<input name='desc'>
<input name='desc'>
<input name='desc'>
<input name='desc'>
<input name='desc'>
<input type='submit'>
</form>
================================

This responds: 5, independent of any filling of the fields at submission,
with or without commas.
so clearly the request.form("desc") is NOT a string but a collection,
in test1 only converted to a string by response.write.
ergo the problem. If one of the values being returned has a comma in
it, then it will throw the count off, hence the need for the client
side change.
Now we know it is a collection, the solution is near:

========= test3.asp ===============
<%
for i=1 to request.form("desc").count
response.write i & ": " & request.form("desc")(i) & "<br>"
next
%>

<form method='post'>
<input name='desc' value='1qwe,ert'>
<input name='desc' value='2asd,ert'>
<input name='desc' value='3zxc,poi'>
<input name='desc' value='4qwe,xxx'>
<input name='desc' value='5poi,ert'>
<input type='submit'>
</form>
================================

The commas do not interfere with the count,
in this fully serverside solution.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Apr 7 '07 #12
"Adrienne Boswell" wrote:
<% for i = 0 to 10%>
<tr>
<td><input name="desc" id="desc<%=i%>" type="text"></td><td><input
type="text" name="numbers" id="numbers<%=i%>"></td>
</tr>
<% next%>
Let me make something clear that you may not have considered: the client is
under no obligation to keep those name-value pairs in order -- and
frequently sends them in a different order than they appear. That means this
approach will fail whether you change commas to semicolons or not.

A much better approach is to uniquely *name* the elements:

<% For i = 0 To 10 %>
<input name="desc<%=i%>" ...>
<% Next %>
You can then examine the form contents like this:

For i = 0 To 10
DoStuffWith(Request.Form("desc" & i))
Next


--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms.

Apr 7 '07 #13

Adrienne Boswell wrote:
When the data gets returned it's something like:
header: "socks, shoes, pizza, cats, dogs"
description: "good for feet, wear with socks, cheese only, have lots
of hair, bark a lot"

Problem comes when the description or header have a comma. I need a
little javascript that will replace the comma with a semicolon
someVar = someVar.replace(/,/g,';')

Apr 9 '07 #14
, = ,

On Apr 6, 6:02 am, "Adrienne Boswell" <arb...@yahoo.comwrote:
Although this is a client side issue, I am also posting to asp.general
in case there is someway to do this only server side (which I would
prefer).

Here's my form:

<form method="post" action="<%=request.servervariables("Script_name")
%>"
<% for i - 0 to 4%>
Header: <input type="text" name="header" id="header<%=i%>"
onblur="function(this)"><br>
Description: <input type="text" name="description" id="description<%=i
%>" onblur="function(this)">
<% next%>
<input type="submit" value="Submit">
</form>

When the data gets returned it's something like:
header: "socks, shoes, pizza, cats, dogs"
description: "good for feet, wear with socks, cheese only, have lots
of hair, bark a lot"

Problem comes when the description or header have a comma. I need a
little javascript that will replace the comma with a semicolon client
side before it gets to
the server, preferably as they leave the field.

Any help with this would be much appreciated.

--
Adrienne Boswell at work
Administrator nextBlock.com
http://atlas.nextblock.com/files/
Please respond to the group so others can share

Apr 10 '07 #15

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

14
by: Mike N. | last post by:
Hello: I have a form that contains a multiple-select field that has 12 options in it. I would like the user to be able to select UP TO FOUR of those options. If they select more than four, I...
22
by: ineedyourluvin1 | last post by:
Hello all! I've been looking for a way to strip characters from strings such as a comma. This would be great for using a comma as a delimiter. I show you what I have right now. ...
4
by: serge | last post by:
I managed to put together C# code and have it do the following: 1- Get all the table names that start with the letter "Z" from sysobjects of my SQL 2000 database and put these table names...
4
by: Tony WONG | last post by:
i have an array data, like this 1234,4565,7890,3478 i use replace to replace "," to ";" for fitting into the data input however, i choose record according to the "selected" checkbox, then...
3
by: Roy W. Andersen | last post by:
Hi, I need to do some replace-calls on certain strings in order to replace smiley glyphs and other keywords with graphical icons on the client. Unfortunately, my knowledge of regular expressions...
11
by: Dooza | last post by:
Using ASP/VB I need to remove unwanted commas from the end of a field that will be use in an array. There are items in the field that are comma separated, so I don't want to remove them, just the...
11
by: James Kanze | last post by:
On Apr 11, 6:48 am, Jerry Coffin <jerry.cof...@gmail.comwrote: The combination of the two. *IF* it is appropriate to use a container here, that container
7
by: | last post by:
Hello guys! I am trying to make something here,,, i am not an experienced php user so this might be an easy question but for me it seems like a mountain! So, i got a field in mySQL in which data...
0
by: Naresh1 | last post by:
What is WebLogic Admin Training? WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge required to effectively administer and manage Oracle...
1
by: Matthew3360 | last post by:
Hi there. I have been struggling to find out how to use a variable as my location in my header redirect function. Here is my code. header("Location:".$urlback); Is this the right layout the...
2
by: Matthew3360 | last post by:
Hi, I have a python app that i want to be able to get variables from a php page on my webserver. My python app is on my computer. How would I make it so the python app could use a http request to get...
0
by: AndyPSV | last post by:
HOW CAN I CREATE AN AI with an .executable file that would suck all files in the folder and on my computerHOW CAN I CREATE AN AI with an .executable file that would suck all files in the folder and...
0
hi
by: WisdomUfot | last post by:
It's an interesting question you've got about how Gmail hides the HTTP referrer when a link in an email is clicked. While I don't have the specific technical details, Gmail likely implements measures...
0
Oralloy
by: Oralloy | last post by:
Hello Folks, I am trying to hook up a CPU which I designed using SystemC to I/O pins on an FPGA. My problem (spelled failure) is with the synthesis of my design into a bitstream, not the C++...
0
by: Carina712 | last post by:
Setting background colors for Excel documents can help to improve the visual appeal of the document and make it easier to read and understand. Background colors can be used to highlight important...
0
by: Rahul1995seven | last post by:
Introduction: In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python has gained popularity among beginners and experts...
0
by: Ricardo de Mila | last post by:
Dear people, good afternoon... I have a form in msAccess with lots of controls and a specific routine must be triggered if the mouse_down event happens in any control. Than I need to discover what...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.