[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 609
  • Last Modified:

js help with uploadify scriptdata

How can I get the correct value from a dropdown. I can only get the first one in the list. In this case no matter what i select I get albumID=4 as it is the first in the list.

Code from Uploadify
'scriptData'	: {
          "success_action_status"		: "201",
          "userID"                                : "<?= $userID ?>",
	  "albumID"                             : $('#albumID').val()						
},

Open in new window


Code from Dynamic Dropdown
echo "Select an album.<br/>";
echo "<select name='albumID' id='albumID'>";					
while($row = mysql_fetch_array($result)){
      echo "<option value=".$row['id'].">$row[albumName]</option>"; 
}
echo "</select>";

Open in new window


Static view of Dropdown
<select name="albumID" id="albumID">
<option value="4">Game Images</option>
<option value="3">Game Videos</option>
<option value="5">Personal</option>
</select>
0
UltraFlux
Asked:
UltraFlux
  • 5
  • 3
  • 2
1 Solution
 
gr8gonzoConsultantCommented:
1. View the source and search for "albumID" to check to make sure there's no other <input> with that same ID.

2. Try:
$('#albumID option:selected').val()
It should be the same thing, but it's a little more defined.

3. If you still get ID=4 after trying #2, then it could be an issue with the timing / order-of-events (e.g. the code is running while the dropdown value has not yet changed to its real value). I'm not sure when the code is running...?
0
 
ahoffmannCommented:
>  echo "<option value=".$row['id'].">$row[albumName]</option>";

do you probably want:

    echo "<option value=".$row['id'].">".$row['albumName']."</option>";
0
 
UltraFluxAuthor Commented:
Hi gr8gonzo and ahoffann,

Tried
$('#albumID option:selected').val()
Still saved id = 4

Not sure what to do still stuck...
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
ahoffmannCommented:
what about my "echo ... " suggestion?
0
 
UltraFluxAuthor Commented:
same, no improvement

if($numalbums > 0){
  echo 'Select an album.<br/>';
  echo "<select name='albumID' id='albumID' width='200px'>";					
    while($row = mysql_fetch_array($result)){					
      echo "<option value=".$row['id'].">$row[albumName]</option>"; 
    }
  echo "</select>";
}

Open in new window

0
 
ahoffmannCommented:
please read my suggestion ID: 37729064 again
please make yourself used to the change I suggested, and test it
0
 
UltraFluxAuthor Commented:
I did test it as I said above. Nothing changed, still saves id=4
0
 
gr8gonzoConsultantCommented:
Oh I see what's happening. The scriptData is evaluating at the time that the page loads, so it's setting itself to 4 at the beginning of the page load when uploadify is setting up, but when the <select> option changes, you are not sending the updated value back to scriptData, so it stays on the original value at page load.

You'll need to do something like this:

Change: <select name='albumID' id='albumID'>
To: <select name='albumID' id='albumID' onChange="updateScriptData();">

Then add this Javascript function:

function updateScriptData()
{
  // Pull existing settings
  scriptData = $('#file_upload').uploadifySettings('scriptData');

  // Update the album ID to the <select>ed option
  scriptData.albumID = $('#albumID').val();

  // Update the settings
  $('#file_upload').uploadifySettings('scriptData',scriptData);
}

Documentation:
http://www.uploadify.com/documentation/methods/uploadifysettings/
0
 
UltraFluxAuthor Commented:
WORKS!
0
 
UltraFluxAuthor Commented:
Thanks a lot  gr8gonzo!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 5
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now