Re: populate form input option dropdown box from existing data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ashley Sheridan wrote:
> On Tue, 2009-06-16 at 20:46 -0400, PJ wrote:
>   
>> 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 --- pj@xxxxxxxxxxxxx
>>>>>>    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 --- pj@xxxxxxxxxxxxx
>>>>    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 --- pj@xxxxxxxxxxxxx
>>    http://www.ptahhotep.com
>>    http://www.chiccantine.com/andypantry.php
>>
>>
>>     
> have you an example page somewhere?
>   
I can send it as attachment? or I can put it on the website; but the
script is a real mess since I am using the insert script as a sort-of
template.

For the moment, I am trying to resolve the problem of extracting a value
from a string returned by a query. I thought that in_array() would do
it, but the tests I have run on it are 100% negative. The only thing I
have not used in the tests is third parameter bool $strict which only
affects case-sensitivity if the $needle is a string. This leads me to
believe that in_array() is either inappropriately defined in the manual
and not effective on associative arrays... but it doesn't say so. I've
tried entering a string variable a number text with and without quotes
but the results are inevitably negative.

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux