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 --- p...@ptahhotep.com
>>>>    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 --- p...@ptahhotep.com
>>    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?
>   
Good thinking; I feel dumb all over again... :-(

Yeah, view source doesn't show any "selected" words.
Something fishy is going on.

-- 
Hervé Kempf: "Pour sauver la planète, sortez du capitalisme."
-------------------------------------------------------------
Phil Jourdan --- p...@ptahhotep.com
   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

Reply via email to