web.dev wrote:
Brie wrote: 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[i].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!