Javascript question on displaying contents of a webpage in a portlet

B

Brie

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.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
 
W

web.dev

Brie said:
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++)

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++)
if (cityName.toLowerCase() ==
cityName.cityName.toLowerCase())


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.
 
W

web.dev

Brie said:
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++)

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++)
if (cityName.toLowerCase() ==
cityName.cityName.toLowerCase())


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.
 
B

Brie

web.dev said:
Brie said:
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++)

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++)
if (cityName.toLowerCase() ==
cityName.cityName.toLowerCase())


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.




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!
 
W

web.dev

Brie said:
Here's where the script is defined. THis is another page:
<% [snip]
%>

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top