I've been playing cat and mouse with this beast for the last few months. I have a few 2-part dropdowns based on taxonomy/categories (IE: Product category/subcategory) and though creating a product successfully saves both selections to the database, when I edit the product, the subcategory dropdown is properly populated, but NOT selected. A huge workability problem because if you go in to edit something else and submit, the subcategory in the database gets lost.

This was a difficult problem to diagnose, because there are issues causing only the parent item (Product category) to be saved too. I was able to fix that (Content Type - Active Select field edit - Make sure it accepts multiple values - PLEASE CONFIRM OR CORRECT).

That problem was fixed, the values are properly saved to the database, and properly read from the database. Then I RAN INTO THE PROBLEM AGAIN. And after investigating how the values passed in the URL were being parsed, found the problem. If you have a category item with an "&" in it, the "&" is embedded in the AJAX call, and it breaks content_taxonomy_activeselect::content_taxonomy_activeselect function's ability to parse the 'Extras' which includes the default_tid of the child dropdown (subcategory).

Is it possible to internally safe the category value via htmlspecialchars of similiar function when it comes time to make the AJAX call? Then, in the recipient function reconvert it before querying taxonomy for the complete list of children?

Thanks. This has been a huge problem, but substituting "and" for "&" is a reliable workaround.

To replicate the issue:

Add a parent category item, with "&" EX: Wine & Spirits
Add Some children EX: wine, vodka, scotch, bourbon, champagne
Add Active Select widget to a node's form
Create a new node, selecting Wine & Spirits / champagne
Submit
Edit the node
"Wine & Spirits" will be selected.
The 2nd dropdown will not show 'champagne'

Comments

magnus’s picture

Status: Active » Closed (won't fix)

Cleanup of old issues. According to maintainer: "active development is only done for the 6.x branch! 5.x is not supported any more".
Reopen issue if problem still exist in 6.x branch.