Connecting Tech Pros Worldwide Help | Site Map

Javascript question on displaying contents of a webpage in a portlet

Brie
Guest
 
Posts: n/a
#1: Feb 9 '06
I have a user preferences page where users select what city they're
with. Once they choose that a certain page shows in a portlet on their
intranet page. I can't get this to work. Here's the code I have for
it to show those corresponding pages. Does anyone know what i'm doing
wrong? Any help would be greatly appreciated.

<script type="text/javascript">

for (var i = 0; i < cityName; i++)
if (cityName.toLowerCase() ==
cityName[i].cityName.toLowerCase())
{
open (weatherURL);
break;
}

var cityName = [
{ cityName: 'austin',
weatherURL: "austin.html" },
{ cityName: "albany",
weatherURL: "albany.html" },
{ cityName: "amsterdam",
weatherURL: "amsterdam.html" },
{ cityName: "beijing",
weatherURL: "beijing.html" },
{ cityName: "berlin",
weatherURL: "berlin.html" }

];


</script>


Thanks!
Brie

web.dev
Guest
 
Posts: n/a
#2: Feb 9 '06

re: Javascript question on displaying contents of a webpage in a portlet



Brie wrote:[color=blue]
> I have a user preferences page where users select what city they're
> with. Once they choose that a certain page shows in a portlet on their
> intranet page. I can't get this to work. Here's the code I have for
> it to show those corresponding pages. Does anyone know what i'm doing
> wrong? Any help would be greatly appreciated.
>
> <script type="text/javascript">
>
> for (var i = 0; i < cityName; i++)[/color]

i < cityName ?

1. You're using cityName before you even have it defined.
2. You're comparing a number to an object.

You probably really meant this:

for(var i = 0; i < cityName.length; i++)
[color=blue]
> if (cityName.toLowerCase() ==
> cityName[i].cityName.toLowerCase())[/color]

Now you've confused me. Do you have in your form an element with the
name "cityName" ? The expression on the left hand side makes me assume
so. In which case, you should then access it properly:

if(document.forms["formName"].elements["cityName"].value.toLowerCase()
== ...)

And finally, where is your script defined? The way it is at the
moment, it'll execute right away. Meaning, since it's not contained in
a function and you're waiting for a response from the user, it's
useless.

web.dev
Guest
 
Posts: n/a
#3: Feb 9 '06

re: Javascript question on displaying contents of a webpage in a portlet



Brie wrote:[color=blue]
> I have a user preferences page where users select what city they're
> with. Once they choose that a certain page shows in a portlet on their
> intranet page. I can't get this to work. Here's the code I have for
> it to show those corresponding pages. Does anyone know what i'm doing
> wrong? Any help would be greatly appreciated.
>
> <script type="text/javascript">
>
> for (var i = 0; i < cityName; i++)[/color]

i < cityName ?

1. You're using cityName before you even have it defined.
2. You're comparing a number to an object.

You probably really meant this:

for(var i = 0; i < cityName.length; i++)
[color=blue]
> if (cityName.toLowerCase() ==
> cityName[i].cityName.toLowerCase())[/color]

Now you've confused me. Do you have in your form an element with the
name "cityName" ? The expression on the left hand side makes me assume
so. In which case, you should then access it properly:

if(document.forms["formName"].elements["cityName"].value.toLowerCase()
== ...)

And finally, where is your script defined? The way it is at the
moment, it'll execute right away. Meaning, since it's not contained in
a function and you're waiting for a response from the user, it's
useless.

Brie
Guest
 
Posts: n/a
#4: Feb 9 '06

re: Javascript question on displaying contents of a webpage in a portlet



web.dev wrote:[color=blue]
> Brie wrote:[color=green]
> > I have a user preferences page where users select what city they're
> > with. Once they choose that a certain page shows in a portlet on their
> > intranet page. I can't get this to work. Here's the code I have for
> > it to show those corresponding pages. Does anyone know what i'm doing
> > wrong? Any help would be greatly appreciated.
> >
> > <script type="text/javascript">
> >
> > for (var i = 0; i < cityName; i++)[/color]
>
> i < cityName ?
>
> 1. You're using cityName before you even have it defined.
> 2. You're comparing a number to an object.
>
> You probably really meant this:
>
> for(var i = 0; i < cityName.length; i++)
>[color=green]
> > if (cityName.toLowerCase() ==
> > cityName[i].cityName.toLowerCase())[/color]
>
> Now you've confused me. Do you have in your form an element with the
> name "cityName" ? The expression on the left hand side makes me assume
> so. In which case, you should then access it properly:
>
> if(document.forms["formName"].elements["cityName"].value.toLowerCase()
> == ...)
>
> And finally, where is your script defined? The way it is at the
> moment, it'll execute right away. Meaning, since it's not contained in
> a function and you're waiting for a response from the user, it's
> useless.[/color]



Here's where the script is defined. THis is another page:

<body>
<%
//Get portlet context object
IPortletContext portletContext =
PortletContextFactory.createPortletContext(request ,response);
IPortletResponse portletResponse = portletContext.getResponse();

//Get user name from incoming form, and set it into the
portletResponse
String cityName = request.getParameter("cityName");
if (cityName == null)
{
System.out.println("FHWeather: setUserPrefs: selected cityName is
null, set default albany");
cityName = "albany";
}

System.out.println("FHWeather: setUserPrefs: cityName = " +
cityName);

IPortletRequest portletRequest = portletContext.getRequest();
portletResponse.setSettingValue(SettingType.User, "cityName",
cityName);

System.out.println("FHWeather: setUserPrefs: cityName = " +
portletRequest.getSettingValue(SettingType.User, "cityName"));

portletResponse.returnToPortal();
%>
</body>
</html>

Thanks!

web.dev
Guest
 
Posts: n/a
#5: Feb 9 '06

re: Javascript question on displaying contents of a webpage in a portlet



Brie wrote:[color=blue]
> Here's where the script is defined. THis is another page:
> <%[/color]
[snip][color=blue]
> %>[/color]

Where is the script defined? Posting server-side script is not very
useful. Instead, you should post what the client receives.

Closed Thread