Solved

Put a javascript variable value into a concatenated string

Posted on 2009-05-19
7
543 Views
Last Modified: 2012-05-07
I am creating a chart on the fly with xml/swf charts. The problem that I am having is that I am passing a querystring value so that it knows what xml file to pull the data into the chart.

I have setup my javascript to grab my only query string variable, and it does this correctly (tested that it's getting the value with document.write). The problem that I have is when I have added the value into the concatenated string (line that starts with "library") it doesn't pull the value.

What am I missing?

Thanks!
<script language="JavaScript" type="text/javascript">
    
        <!--
 
        fullURL = location.search
        qs = fullURL.substring(fullURL.indexOf('?') + 1, fullURL.length)
        userId = qs.substring(qs.indexOf('=') + 1, qs.length)
                
        
        if (AC_FL_RunContent == 0 || DetectFlashVer == 0) {
            alert("This page requires AC_RunActiveContent.js.");
        } else {
            var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
            if (hasRightVersion) {
                AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0',
			'width', '400',
			'height', '250',
			'scale', 'noscale',
			'salign', 'TL',
			'bgcolor', '#BE8407',
			'wmode', 'opaque',
			'movie', 'charts',
			'src', 'charts',
			'FlashVars',
			'library_path=charts_library&xml_source=' + userId + '.xml',
			'id', 'my_chart',
			'name', 'my_chart',
			'menu', 'true',
			'allowFullScreen', 'true',
			'allowScriptAccess', 'sameDomain',
			'quality', 'high',
			'align', 'middle',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'play', 'true',
			'devicefont', 'false'
			);
            } else {
                var alternateContent = 'This content requires the Adobe Flash Player. '
		+ '<u><a href=http://www.macromedia.com/go/getflash/>Get Flash</a></u>.';
                document.write(alternateContent);
            }
        }
        // -->
        </script>

Open in new window

0
Comment
Question by:jrmcintosh
  • 4
  • 3
7 Comments
 
LVL 40

Expert Comment

by:Richard Quadling
ID: 24427029
Can you add ...

alert('library_path=charts_library&xml_source=' + userId + '.xml');

after the line that populates the userID variable.


0
 

Author Comment

by:jrmcintosh
ID: 24427071
What does that accomplish vs. what I have already tested with document.write.

Yes that gives me the correct URL value in the alert, but I need to place that userid below in the AC_FL_RunContent function.

Thanks for your help.
0
 
LVL 40

Expert Comment

by:Richard Quadling
ID: 24427135
I want to make sure that the alert shows the correct value.

What I want to make sure it that there are no spaces or additional characters.

0
Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

 

Author Comment

by:jrmcintosh
ID: 24427416
Yes, there are no spaces or additional characters.

When I view source the line in question doesn't give the userID value, it shows the code exactly as it is, like this:

'library_path=charts_library&xml_source=' + userId + '.xml',

but I want it to look like this based on the variable value:

'library_path=charts_library&xml_source='1.xml',
0
 

Author Comment

by:jrmcintosh
ID: 24430030
Anyone?
0
 
LVL 40

Expert Comment

by:Richard Quadling
ID: 24430835
I assume ...

'library_path=charts_library&xml_source='1.xml',

should be ...

'library_path=charts_library&xml_source=1.xml',

Note the single quote before the ID.


The way I see this, the code is right.

I would now do some debugging in AC_FL_RunContent() to see what it is getting for param#20 (I assume the value associated with FlashVars).


0
 
LVL 40

Accepted Solution

by:
Richard Quadling earned 500 total points
ID: 24430846
You won't see a change in the source. The code is processed at runtime, so something like FireBug or just dumb alerts(); are needed to see what is going on.
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
This article discusses how to create an extensible mechanism for linked drop downs.
The goal of the tutorial is to teach the user how to how to record live broadcast.
The goal of the tutorial is to teach the user how to select which audio input to use. Once you have an audio input plugged into the laptop or computer, you will go into the audio input settings and choose which audio input you want to use.

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now