View Full Version : Populate List from Array not enabled
evansg7124312885
03-14-2010, 11:42 AM
Problem started with an existing form, went through Getting Started Guide, all went as expected up to add behavior Populate List from Array. When the WA Dynamic Drop Down category is selected, the Populate option is grayed out. I thought it may be something with my form so I started a new page with a blank form, ran the steps again and had the same problem. I have version 2.7.4 installed; using Dreamweaver CS3.
One item that appeared strange is that when the Create Dynamic Array behavior is applied, no behaviors appear in the behaviors list showing this action by name. Is this normal? I have checked the database for a possible mismatch of text and integer and have not found a possible problem between the two tables used.
Second question: I would like these lists set up to initially select a value equal to; this value will come from a different table, but should be equal to to the list options. Will this cause errors with the Dynamic Dropdown behaviors?
Jason Byrnes
03-15-2010, 10:38 AM
for the populate list from array behavior to be available, the following criteria must be met:
1) Create a Parent list
2) Create a child list
3) Create a recordset
4) Add the Create Dynamic List server behavior.
In Dreamweaver, there is a behaviors panel and a server behaviors panel.
The behaviors panel will show client side javascript behaviors that have applied to the page, the Server Behaviors will show the dynamic server side behaviors. The Create Dynamic Array behavior is a server behavior and will only be listed on the server behaviors panel.
If you are using a recordset to preselect a value for the parent list, you should also add the populate list from array behavior to set the chilld list to the onLoad event of the Body tag.
Dennis
03-31-2010, 08:05 AM
What was the outcome of this? I am having the same issue.
Followed the Getting Started with... guide step-by-step up to the Apply Dynamic Dropdowns behaviors - Creating the Dynamic Array (the 4 steps Jason lists above, completed successfully). Following this step and clicking OK dosen't appear to do anything, no additional item is added to the Server Behavior list, thus Populate List from Array is grayed out in the Behaviors tab.
Dennis
steven348539
03-31-2010, 08:33 PM
I am as well. I can find in the code where it inserts code for the extension, directly under the <title> tags, but it is not listing the the behavior under "Sever Behavior" I had to move one of my Recordsets with the other ones because the program wasn't seeing it as it duplicated some code, which made things disappear form the behavior panel, but I can't find out why it's doing it with the DD extension.
<title>Midnight Oasis</title>
<?php
if ($row_rsStates) {
echo "<SC" . "RIPT>\n";
echo "var WAJA = new Array();\n";
$oldmainid = 0;
$newmainid = $row_rsStates["StateCountryID"];
if ($oldmainid == $newmainid) {
$oldmainid = "";
}
$n = 0;
while ($row_rsStates) {
if ($oldmainid != $newmainid) {
echo "WAJA[".$n."] = new Array();\n";
echo "WAJA[".$n."][0] = '".WA_DD_Replace($newmainid)."';\n";
$m = 1;
}
echo "WAJA[".$n."][".$m."] = new Array();\n";
echo "WAJA[".$n."][".$m."][0] = "."'".WA_DD_Replace($row_rsStates["StateID"])."'".";\n";
echo "WAJA[".$n."][".$m."][1] = "."'".WA_DD_Replace($row_rsStates["StateName"])."'".";\n";
$m++;
if ($oldmainid == 0) {
$oldmainid = $newmainid;
}
$oldmainid = $newmainid;
$row_rsStates = mysql_fetch_assoc($rsStates);
if ($row_rsStates) {
$newmainid = $row_rsStates["StateCountryID"];
}
if ($oldmainid != $newmainid) {
$n++;
}
}
echo "var rsStates_WAJA = WAJA;\n";
echo "WAJA = null;\n";
echo "</SC" . "RIPT>\n";
}
function WA_DD_Replace($startStr) {
$startStr = str_replace("'", "|WA|", $startStr);
$startStr = str_replace("\\", "\\\\", $startStr);
$startStr = preg_replace("/[\r\n]{1,}/", " ", $startStr);
return $startStr;
}
?>
<!-- InstanceEndEditable -->
Various checkout files can be found http://www.webassist.com/forums/showthread.php?t=11798 as I am having more than 1 issue that I'm trying to get responses to.
EDIT: Added link to other issue/files, added code & screen shot showing that the behavior is not in the server behavior list.
Jason Byrnes
04-01-2010, 09:27 AM
can you try saving the file, closing Dreamweaver, deleting the Dreamweaver cache file from the users configuration folder (http://assets.webassist.com/technotes/common_installation_issues.pdf), then opening the page in Dreamweaver again.
steven348539
04-01-2010, 09:38 AM
I had previously tried this before posting here and just tried it again. It has not added it to the Server Behavior list.
Jason Byrnes
04-01-2010, 10:43 AM
I have created a support ticket so we can look into this issue further.
To view and edit your support ticket, please log into your support history:
http://www.webassist.com/mywebassist/login.php
gilbertk356777
04-15-2010, 10:40 AM
I have been waiting for a fix for this but nothing. Anyone get it fixed. I even tried going back to an older version.
Jason Byrnes
04-19-2010, 01:49 PM
in a support ticket, we discovere the problem was being caused when using Dynamic Drop Downs on a template.
The Create Dydnamic array behavior was being created inside the Title editabdel region:
<!-- InstanceBeginEditable name="doctitle" -->
<title>Page Name - <?php echo($WAGLOBAL_Site_Name); ?></title>
<?php
if ($row_Recordset1) {
echo "<SC" . "RIPT>\n";
echo "var WAJA = new Array();\n";
$oldmainid = 0;
$newmainid = $row_Recordset1["ProductID"];
if ($oldmainid == $newmainid) {
$oldmainid = "";
}
$n = 0;
while ($row_Recordset1) {
if ($oldmainid != $newmainid) {
echo "WAJA[".$n."] = new Array();\n";
echo "WAJA[".$n."][0] = '".WA_DD_Replace($newmainid)."';\n";
$m = 1;
}
echo "WAJA[".$n."][".$m."] = new Array();\n";
echo "WAJA[".$n."][".$m."][0] = "."'".WA_DD_Replace($row_Recordset1["ProductID"])."'".";\n";
echo "WAJA[".$n."][".$m."][1] = "."'".WA_DD_Replace($row_Recordset1["ProductID"])."'".";\n";
$m++;
if ($oldmainid == 0) {
$oldmainid = $newmainid;
}
$oldmainid = $newmainid;
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
if ($row_Recordset1) {
$newmainid = $row_Recordset1["ProductID"];
}
if ($oldmainid != $newmainid) {
$n++;
}
}
echo "var Recordset1_WAJA = WAJA;\n";
echo "WAJA = null;\n";
echo "</SC" . "RIPT>\n";
}
function WA_DD_Replace($startStr) {
$startStr = str_replace("'", "|WA|", $startStr);
$startStr = str_replace("\\", "\\\\", $startStr);
$startStr = preg_replace("/[\r\n]{1,}/", " ", $startStr);
return $startStr;
}
?>
<!-- InstanceEndEditable -->
the work around to the problem we discovered was to move the Create Duynamic array code to be before the doctype tag:
<?php
if ($row_Recordset1) {
echo "<SC" . "RIPT>\n";
echo "var WAJA = new Array();\n";
$oldmainid = 0;
$newmainid = $row_Recordset1["ProductID"];
if ($oldmainid == $newmainid) {
$oldmainid = "";
}
$n = 0;
while ($row_Recordset1) {
if ($oldmainid != $newmainid) {
echo "WAJA[".$n."] = new Array();\n";
echo "WAJA[".$n."][0] = '".WA_DD_Replace($newmainid)."';\n";
$m = 1;
}
echo "WAJA[".$n."][".$m."] = new Array();\n";
echo "WAJA[".$n."][".$m."][0] = "."'".WA_DD_Replace($row_Recordset1["ProductID"])."'".";\n";
echo "WAJA[".$n."][".$m."][1] = "."'".WA_DD_Replace($row_Recordset1["ProductID"])."'".";\n";
$m++;
if ($oldmainid == 0) {
$oldmainid = $newmainid;
}
$oldmainid = $newmainid;
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
if ($row_Recordset1) {
$newmainid = $row_Recordset1["ProductID"];
}
if ($oldmainid != $newmainid) {
$n++;
}
}
echo "var Recordset1_WAJA = WAJA;\n";
echo "WAJA = null;\n";
echo "</SC" . "RIPT>\n";
}
function WA_DD_Replace($startStr) {
$startStr = str_replace("'", "|WA|", $startStr);
$startStr = str_replace("\\", "\\\\", $startStr);
$startStr = preg_replace("/[\r\n]{1,}/", " ", $startStr);
return $startStr;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
then once you where finished getting dynamic drop downs to work, move it back to the original location.
CraigR
09-05-2010, 09:07 AM
About to say something which appeared pertinent, and then realised it wasn't !!
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.