RE: [PHP] populate form input option dropdown box from existing data

[email protected] (Yuri Yarlei)
Newsgroups php.general
Message-ID <[email protected]>
sorry, maybe I have been lazy in that comment, I admit, whem wrote that solution i was in a such hurry and without time. I dont really read what i wrote, but now i think this solution is good


<select name="categories" multiple style='width:120px;height:150px'>
<?
$sql = "SELECT id,name FROM categories";
if ( ( $results = mysql_query($sql, $conn) ) !== false ) {
  while ( $row = mysql_fetch_assoc($results) ) {
    $selected = ($id == $row['id'] ? 'selected="selected"' : '');
    echo "<option value=".$row['id']." ".$selected.">".$row['name']."</option>";
  }
}
?>
</select>

> Date: Tue, 16 Jun 2009 20:46:29 -0400
> From: [email protected]
> To: [email protected]
> CC: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
> Subject: Re: [PHP] populate form input option dropdown box from	existing	data
> 
> Ashley Sheridan wrote:
> > On Tue, 2009-06-16 at 18:19 -0400, PJ wrote:
> >   
> >> Ashley Sheridan wrote:
> >>     
> >>> On Tue, 2009-06-16 at 15:48 -0400, PJ wrote:
> >>>   
> >>>       
> >>>> jenai tomaka wrote:
> >>>>     
> >>>>         
> >>>>> You can try like this,
> >>>>>
> >>>>> $row = stored data;
> >>>>>  
> >>>>> and write the options like this
> >>>>> <option value="id" (id == $row ? "selected" : "") >xxxx</option>
> >>>>>
> >>>>>
> >>>>> Yuri Yarlei.
> >>>>>
> >>>>> <http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmail&utm_medium=Tagline&utm_campaign=IE8>
> >>>>>       
> >>>>>           
> >>>> Yuri, I'm still "wet behind the ears" on this so I don't quite
> >>>> understand what you mean by "stored data" ;  and what does the "id"
> >>>> (id==$row?"selected":"") mean?
> >>>> I get the idea that this might be translated into something in the code
> >>>> I have dreamed up - further down.
> >>>>
> >>>> echo "<option value=", $row['id'], ">", $row['category'], "</option><br />";
> >>>> I suppose that I must add an if clause to insert the selected option for
> >>>> the categories that are relevant...
> >>>>
> >>>>
> >>>> Gentlemen,
> >>>> I have been diligently studying all this and have just returned my
> >>>> attention to the list, so I've read the replies/inputs and now comment:
> >>>>
> >>>> BTW, I had some problems with the multiple statement - it does not take
> >>>> any parameters; it must simply be stated multiple without quotes.
> >>>>
> >>>> Now, I was happy to learn that it is simpler to populate the insert new
> >>>> books page dynamically from the db. Much shorter & neater.
> >>>> It looks to me like the best solution for the edit page is close to what
> >>>> Yuri suggests.
> >>>> Since the edit page is very similar to the insert new books page, I
> >>>> merely need to populate the Select options box slightly differently.
> >>>> This is the code to populate the insert page:
> >>>> <select name="categoriesIN[]" multiple size="8">
> >>>> <?php
> >>>> $sql = "SELECT * FROM categories"; 
> >>>>   if ( ( $results = mysql_query($sql, $db) ) !== false ) {
> >>>>         while ( $row = mysql_fetch_assoc($results) ) {
> >>>>             echo "<option value=", $row['id'], ">", $row['category'],
> >>>> "</option><br />";
> >>>>             }
> >>>>         }
> >>>> ?>
> >>>> </select>
> >>>>
> >>>> The problem nowis to find a way to add a conditional clause above that
> >>>> will insert the option="selected" in the output.
> >>>> The input for this comes from:
> >>>> // do categories
> >>>> $sql = "SELECT id, category FROM categories, book_categories
> >>>>         WHERE book_categories.bookID = $idIN &&
> >>>> book_categories.categories_id = categories.id";;
> >>>>     if ( ( $results = mysql_query($sql, $db) ) !== false ) {
> >>>>         while ( $row = mysql_fetch_assoc($results) ) {
> >>>>             echo$row['id'], "<br />";
> >>>>         }
> >>>>     }
> >>>>
> >>>> This may return any number of category ids so the problem is to figure
> >>>> out a way to pass the ids from the above code to the right ids in the
> >>>> first code above.
> >>>> How & what do I search to match the two ids?
> >>>>
> >>>> -- 
> >>>> Hervé Kempf: "Pour sauver la planète, sortez du capitalisme."
> >>>> -------------------------------------------------------------
> >>>> Phil Jourdan --- [email protected]
> >>>>    http://www.ptahhotep.com
> >>>>    http://www.chiccantine.com/andypantry.php
> >>>>
> >>>>
> >>>>     
> >>>>         
> >>> <option value="id" (id == $row ? "selected" : "") >xxxx</option> is
> >>> pretty bad HTML, as attributes should always have a value. Personally, I
> >>> do something like this as it tends not to confuse the code too much
> >>>
> >>> $selected = ($id == $row)?'selected="selected"':'';
> >>> print "<option value=\"$id\" $selected >xxxx</option>";
> >>>   
> >>>       
> >> I was unable to get any of the suggestions to work, except in_array().
> >> However, the selected item refuses to become highlighted.
> >> code:
> >> <select name="categoriesIN[]" multiple size="8">
> >> <?php
> >> $sql = "SELECT * FROM categories";
> >>         //$selected = ($id == $row)?'selected="selected"':'';
> >>   if ( ( $results = mysql_query($sql, $db) ) !== false ) {
> >>         while ( $row = mysql_fetch_assoc($results) ) {
> >>             if (in_array($row['id'], $ccc)) {
> >>               echo "<option value=", $row['id'], " selected >",
> >> $row['category'], "</option><br />";
> >>                   }
> >>               else echo "<option value=", $row['id'], ">",
> >> $row['category'], "</option><br />";
> >>             }
> >>         }
> >> ?>
> >>     </select>
> >> I can't find anything that explains why the selected item is not
> >> highlighted.
> >>
> >> -- 
> >> Hervé Kempf: "Pour sauver la planète, sortez du capitalisme."
> >> -------------------------------------------------------------
> >> Phil Jourdan --- [email protected]
> >>    http://www.ptahhotep.com
> >>    http://www.chiccantine.com/andypantry.php
> >>
> >>     
> > Have you actually looked at the html this produces to see if any of the
> > elements are being marked with the selected="selected" attribute?
> >
> > Thanks
> > Ash
> > www.ashleysheridan.co.uk
> >   
> I just cannot find a way to pass the selected fields to the options script.
> Even if I add the selected to all the fields, they show up in the source
> code but the fields are still not highlighted.
> There has to be a way to get this right??? :'(
> 
> -- 
> Hervé Kempf: "Pour sauver la planète, sortez du capitalisme."
> -------------------------------------------------------------
> Phil Jourdan --- [email protected]
>    http://www.ptahhotep.com
>    http://www.chiccantine.com/andypantry.php
> 
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

_________________________________________________________________
Descubra todas as novidades do novo Internet Explorer 8
http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmail&utm_medium=Tagline&utm_campaign=IE8
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.