Wrox Programmer Forums

Need to download code?

View our list of code downloads.

Go Back   Wrox Programmer Forums > ASP.NET and ASP > ASP 3 Classic ASP Active Server Pages 3.0 > Classic ASP Basics
Password Reminder
Register
Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read
Classic ASP Basics For beginner programmers starting with "classic" ASP 3, pre-".NET." NOT for ASP.NET 1.0, 1.1, or 2.0
Welcome to the p2p.wrox.com Forums.

You are currently viewing the Classic ASP Basics section of the Wrox Programmer to Programmer discussions. This is a community of tens of thousands of software programmers and website developers including Wrox book authors and readers. As a guest, you can read any forum posting. By joining today you can post your own programming questions, respond to other developers’ questions, and eliminate the ads that are displayed to guests. Registration is fast, simple and absolutely free .
DRM-free e-books 300x50
Reply
 
Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old June 20th, 2008, 11:58 PM
Authorized User
 
Join Date: Jun 2008
Location: , , .
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
Default Insert ASP code in JS *need HELP*

Hello,

I have a problem. I have ASP code and Javascript code. Now, I want to access ASP code inside javascript code.

Here is the ASP code:
Hello,

I have a problem. I have ASP code and Javascript code. Now, I want to access ASP code inside javascript code.

Here is the ASP code:
<%
CONST C_prefix = "contains(.,'"
CONST C_midfix = "') or contains(.,'"
CONST C_suffix = "')"

Function CreateContainsList( fromStr )
    Dim temp, re
    ' the regexp ensures that multiple spaces become single spaces
    Set re = New RegExp
    re.Pattern = "\s+"
    re.Global = True
    ' so get an array of words via split...
    temp = Split( re.Replace( Trim(fromStr), " " ), " " )
    ' and make it into the contains list via join and helpers
    CreateContainsList = C_prefix & Join( temp, C_midfix ) & C_suffix
End Function

demo = request.Form("txtSearch")

path = "form/document[" & CreateContainsList(demo) & " ]//*"

'Response.Write ("<pre>" & demo & "" & path & "</pre>")
%>

And I want to print variable "path" inside javascript.

I tried like this but the "path" does not print out.
<script type="tex/javascript">
 document.write("<%=path%>");
</script>



It showed an error. The error is : the "path" is undefined
Reply With Quote
  #2 (permalink)  
Old June 21st, 2008, 01:01 AM
Friend of Wrox
 
Join Date: Jun 2008
Location: Snohomish, WA, USA
Posts: 1,649
Thanks: 3
Thanked 141 Times in 140 Posts
Default

Well, if I had to guess, I'd say probably you put the JS code *before* the ASP code.

But that JS code is pretty worthless, anyway.

All it is going to produce in your HTML is

form/document[Contains(.,'something')]//*

It won't be legitimate JavaScript code.
It won't be legitimate HTML code.

It will just be a *STRING* that displays in the browser.

I hope you won't take this too unkindly, but you seem to be trying to run before you have learned to crawl.

You really need to go learn that basics of what you are trying to do.

WHY do you want to get this XPath expression??? WHERE do you want to USE it?

And in any case, since the code you show here is (sorry, but true) nonsense, maybe you need to show more code. In particular, show the code that will try to use the XPath.
Reply With Quote
  #3 (permalink)  
Old June 21st, 2008, 01:10 AM
Friend of Wrox
 
Join Date: Jun 2008
Location: Snohomish, WA, USA
Posts: 1,649
Thanks: 3
Thanked 141 Times in 140 Posts
Default

Looking at your posts over the last week, and in particular the posts here:
    http://p2p.wrox.com/topic.asp?TOPIC_ID=72142

I think what you *POSSIBLY* need is much simpler than what you are trying to do here.

In the TOPIC 72142, you said that *THIS* code worked:

When I tried :
path="form/document[contains(.,'<%= request.Form("txtSearch")%>')]//*";
It works well.


So why are you now trying to CHANGE EVERYTHING???? Why not stick with that *kind* of format?

That is:
Code:
<%
' you can put all this code ANY PLACE on the page!!
' at the top, at the bottom, won't matter
CONST C_prefix = "contains(.,'"
CONST C_midfix = "') or contains(.,'"
CONST C_suffix = "')"

Function CreateContainsList( fromStr )
    Dim temp, re
    ' the regexp ensures that multiple spaces become single spaces
    Set re = New RegExp
    re.Pattern = "\s+"
    re.Global = True
    ' so get an array of words via split...
    temp = Split( re.Replace( Trim(fromStr), " " ), " " )
    ' and make it into the contains list via join and helpers
    CreateContainsList = C_prefix & Join( temp, C_midfix ) & C_suffix
End Function
' end of the function
%>
And now you will just replace *THIS* code:
    path="form/document[contains(.,'<%= request.Form("txtSearch")%>')]//*";
with THIS code:
    path="form/document[<%= CreateContainsList(request.Form("txtSearch"))%>)]//*";

It looks to me like that's all that is required. But of course I can't tell for sure.
Reply With Quote
  #4 (permalink)  
Old June 21st, 2008, 02:03 AM
Authorized User
 
Join Date: Jun 2008
Location: , , .
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
Default

When I use the code only like this:
  path="form/document[contains(.,'<%=request.Form("txtSearch")%>')]//*";

I just can search with 1 word or the exact word.

Actually, the ASP run very well. But, I can not implemented inside javascript

Reply With Quote
  #5 (permalink)  
Old June 21st, 2008, 11:59 AM
Authorized User
 
Join Date: Jun 2008
Location: , , .
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Can I change this ASP code into Javascript code? Because I can not access the variable "path" in Javascript.

Here is the ASP code:
<%
CONST C_prefix = "contains(.,'"
CONST C_midfix = "') or contains(.,'"
CONST C_suffix = "')"

Function CreateContainsList( fromStr )
    Dim temp, re
    ' the regexp ensures that multiple spaces become single spaces
    Set re = New RegExp
    re.Pattern = "\s+"
    re.Global = True
    ' so get an array of words via split...
    temp = Split( re.Replace( Trim(fromStr), " " ), " " )
    ' and make it into the contains list via join and helpers
    CreateContainsList = C_prefix & Join( temp, C_midfix ) & C_suffix
End Function

demo = request.Form("txtSearch")

path = "form/document[" & CreateContainsList(demo) & " ]//*"

Response.Write ("<pre>" & demo & "" & path & "</pre>")
%>

Reply With Quote
  #6 (permalink)  
Old June 21st, 2008, 03:17 PM
Friend of Wrox
 
Join Date: Jun 2008
Location: Snohomish, WA, USA
Posts: 1,649
Thanks: 3
Thanked 141 Times in 140 Posts
Default

I give up. If you won't read what I write, then I can't help you.

I *clearly* showed you in my post just before this one the code that I think would work. I even put the appropriate JavaScript code in red for you.

Yet you persist on going back to my *DEMO* code, which was NEVER intended to be used as the "real thing". It's only purpose was to demo that my CreateContainsList function did what it was supposed to do.
Reply With Quote
  #7 (permalink)  
Old June 22nd, 2008, 01:58 AM
Authorized User
 
Join Date: Jun 2008
Location: , , .
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
Default

I'm so sorry. I was just panic because of the error so I did not read your message carefully. Now, the program work very well. Yesterday, I got the error because I did not change like you said in red colour.

Thank you very much..You're the best

:)

Now, I want to make the same thing like that.
If I run the code that you gave to me, it would show the result like this:
form/document[contains(.,'doc') or contains(.,'pdf') or contains(.,'txt')]//*

How to change the "." become the type that I chose?

I mean like this:
I want to make like a simple advanced search. So, firstly, the user have to choose the category before he/she type the keyword.

So, it looks like this:

path="form/document[contains(<%=request.Form("search_by")%>,'<%= request.Form("txtSearch")%>')]//*";

if I choose "search_by" : author
and the keyword: ABC DEF
then it will show the path like this:
path="form/document[contains(author,'ABC') or contains(author,'DEF')]//*";

I hope you want to help me again

Thank you
Reply With Quote
  #8 (permalink)  
Old June 22nd, 2008, 03:25 PM
Friend of Wrox
 
Join Date: Jun 2008
Location: Snohomish, WA, USA
Posts: 1,649
Thanks: 3
Thanked 141 Times in 140 Posts
Default

Easy...SEVERAL CHANGES TO CODE. Best to copy/paste *ALL* of it.
Code:
<%
' you can put all this code ANY PLACE on the page!!
' at the top, at the bottom, won't matter
CONST C_prefix = "contains($$$,'"
CONST C_midfix = "') or contains($$$,'"
CONST C_suffix = "')"

Function CreateContainsList( fieldName, fromList )
    Dim temp, re
    ' first, check the fieldname:
    fieldName = Trim("" & fieldName)
    ' if not given, use period to mean all fields:
    If fieldName = "" Then fieldName = "."

    ' the regexp ensures that multiple spaces become single spaces
    Set re = New RegExp
    re.Pattern = "\s+"
    re.Global = True
    ' so get an array of words via split...
    temp = Split( re.Replace( Trim(fromList), " " ), " " )
    ' and make it into the contains list via join and helpers
    temp = C_prefix & Join( temp, C_midfix ) & C_suffix
    ' then, finally, replace all our $$$ markers with the field name:
    CreateContainsList = Replace( temp, "$$$", fieldName )

End Function
' end of the function
%>

path="form/document[<%= CreateContainsList(request("search_by"), request("txtSearch"))%>)]//*";
***********

Note that if you don't give a field name for the first argument (if you pass blank or null), the code automatically uses "." instead.
Reply With Quote
  #9 (permalink)  
Old June 22nd, 2008, 09:07 PM
Authorized User
 
Join Date: Jun 2008
Location: , , .
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
Default

I have copied all the code and there is an error like this:

Microsoft VBScript runtime (0x800A01C2)
Wrong number of arguments or invalid property assignment: 'CreateContainsList'




Reply With Quote
  #10 (permalink)  
Old June 23rd, 2008, 12:29 AM
Friend of Wrox
 
Join Date: Jun 2008
Location: Snohomish, WA, USA
Posts: 1,649
Thanks: 3
Thanked 141 Times in 140 Posts
Default

Show the code you copied.

Don't type it in here. Actually copy/paste it from the code where you are getting the error.

I'm betting that you goofed on your copying of my code, but maybe not. So show your *existing* code, to be sure.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
need help on this JS error code in IE kumiko Javascript 2 February 12th, 2008 04:35 AM
zxml.js version 1.0 minor code defects darrenshu BOOK: Professional Ajax ISBN: 978-0-471-77778-6 7 October 31st, 2007 09:25 AM
error in JS code austinf Javascript 2 May 10th, 2006 03:42 AM
asp.net code to insert image in to database madhusrp ASP.NET 1.0 and 1.1 Professional 2 March 16th, 2006 02:54 AM
ASP Insert/Update code causes errors lewdogg Classic ASP Databases 4 January 25th, 2005 04:24 AM



All times are GMT -4. The time now is 10:29 AM.


Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.