Jump to content

Showing Selected Parent


centered effect

Recommended Posts

In my CMS, I have parent and children categories in one level and in one table (id, name, subcat). 

 

What i would like to do is, in PHP of course:

 

Upon editing a category, in a dropdown box, show selected, the parent of the category.  if there is no parent, show selected, a message saying "Not a subcategory".  In the selection though, still shows the parent options as possible selections.

 

Example:

Upon creating a new category, by default not a subcategory:

<select name="subcat" id="subcat">
   <option value="0" selected="selected">not a sub category</option>
   <option value="1">catOne</option>
   <option value="2">catTwo</option>
   <option value="4">catThree</option>
   <option value="8">catFour</option>
</select>

 

Upon editing a category, say a subcategory whose parent is "catTwo", should reflect the parent:

<select name="subcat" id="subcat">
   <option value="0">not a sub category</option>
   <option value="1">catOne</option>
   <option value="2" selected="selected">catTwo</option>
   <option value="4">catThree</option>
   <option value="8">catFour</option>
</select>

 

When a user clicks on the category they wish to edit becomes the $categoryid = the category's primary id. An example in relation to the select options above would be index.php?action=edit_category&id=3 (3 being a subcat and 1 being the parent, referencing the above)

 

The categories table looks like this:

 

id  name		description 	subcat
1  	catOne  	Parent One  	0
2 	catTwo 		Parent Two 		0
3 	subOne 		Child One		1
4 	catThree 	Parent Three	0
5 	subTwo 		Child Two		1
6 	subThree 	Child Three		4
7 	subFour 	Child Four		2
8 	catFour 	Parent Four		0

 

A new category screen is shown as an example of the setup:

addcatbz1.png

 

The code I have so far is below.  It shows the parent category list in a dropdown box.  The add category dropdown is fine, but the edit dropdown is the problem.  I did not write all of this code below, just an fyi

 

// LISTS CATEGORIES
function category_list($var) {
if (isset($_GET['id']) && is_numeric($_GET['id']) && !is_null($_GET['id'])) { // Edit the category
	$categoryid = $_GET['id'];
	echo '<select name="subcat" id="subcat">';
                // Editing code is here....
                // Show "not a subcategory" and parents
                // Selected option is defined based on $categoryid
                // $categoryid = parent (0) then is is not a subcategory
                // $categoryid = subcat (>0) then show the parent selection
	echo '</select>';					
} else { // Add new category
	echo '<select name="subcat" id="subcat">';
   		$query = 'SELECT * FROM '.db('prefix').'categories WHERE subcat = 0';
   		isset($var) ? $query .= ' AND id <> $var' : $query .= '';
   		$result = mysql_query($query);
   		echo '<option value="0"';
   		!isset($var) ? print ' selected="selected">' : print '>';
   		echo 'not a sub category</option>';
   		while ($r = mysql_fetch_array($result)) {
     		echo '<option value="'.$r['id'].'"';
      		isset($var) ? print ' selected="selected">' : print '>';
      		echo $r['name'].'</option>';
   		}
	echo '</select>';
}
}

 

Can anyone help show me the right direction I need to go with this?  Do I need a join in my sql or do I need multiple sql queries? Moreso, how do I accomplish this after the query is completed?  I am not sure how to go about this...

 

Thanks for any and all help!!

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.