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