Изменить значение по умолчанию DropDown HTML со значением MySQL - PullRequest
0 голосов
/ 28 ноября 2011

Я работаю на странице профиля, где зарегистрированный пользователь может обновлять свою информацию.Поскольку пользователь уже предоставил свою информацию, я хотел бы, чтобы его информация из базы данных заполнила мою HTML-форму.

В PHP я создаю HTML-форму с заполненными значениями. Однако япопытался создать оператор IF, чтобы определить, выбран ли параметр в качестве значения по умолчанию.Прямо сейчас мой веб-сайт дает мне значение по умолчанию для последней опции, Undeclared.Поэтому я не уверен, что все операторы IF оцениваются как true или просто пропускают к selected = selected.

Вот мой HTML, который в настоящее время встроен в PHP (<?php ?>):

<?php

// Connect to MySQL
$db = mysql_connect("", "xxx", "xxx");

if (!$db)
{
    exit("Error - Could not connect to MySQL");
}

$er = mysql_select_db("cs329e_fall11_nemo008", $db);

if (!$er)
{
    exit("Error - Could not select the database");
}

$query = "SELECT *
FROM tblMembers
WHERE Username = 'fzr11017' ";

$result = mysql_query($query);

if (!$result)
{
    print("Error - The query could not be executed");
    $error = mysql_error();
    print("<p>:" . $error . "</p>");
    exit;
}

$row = mysql_fetch_array($result);

print <<<FORM

<form id="frmRegister" action="update.php" method="post" onsubmit="return Validate()" >
<table>
    <tr>
        <th><br /></th>
        <td><br /></td>
    </tr>
    <tr>
        <th align="left">Username:</th>
        <td><input type="text" name="Username" maxlength="10" value=$row[Username] readonly="readonly"/></td>
    </tr>
    <tr>
        <th align="left">First Name:</th>
        <td><input type="text" name="FirstName" value=$row[FirstName] readonly="readonly" /></td>
    </tr>
    <tr>
        <th align="left">Last Name:</th>
        <td><input type="text" name="LastName" value=$row[LastName] readonly="readonly" /></td>
    </tr>
    <tr>
        <th align="left">Email Address:</th>
        <td><input type="text" name="Email" value=$row[Email] /></td>
    </tr>
    <tr>
        <th align="left">Phone Number:</th>
        <td><input type="text" name="Phone" maxlength="10" value=$row[Phone] /></td>
    </tr>
    <tr>
        <th align="left">Year:</th>
        <td>
            <select name="Year" >
                <option if(strcmp($row[Year], 'Freshman') == 0){ selected="selected"} >Freshman</option>
                <option if(strcmp($row[Year], 'Sophomore') == 0){ selected="selected"} >Sophomore</option>
                <option if(strcmp($row[Year], 'Junior') == 0){ selected="selected"} >Junior</option>
                <option if(strcmp($row[Year], 'Senior') == 0){ selected="selected"} >Senior</option>
            </select>
        </td>
    </tr>
    <tr>
        <th align="left">Primary Major:</th>
        <td>
            <select name="Major">
                <option if($row[Major] == Accounting){ selected="selected"}>Accounting</option>
                <option if($row[Major] == Business Honors Program){ selected="selected"}>Business Honors Program</option>
                <option if($row[Major] == Engineering Route to Business){ selected="selected"}>Engineering Route to Business</option>
                <option if($row[Major] == Finance){ selected="selected"}>Finance</option>
                <option if($row[Major] == International Business){ selected="selected"}>International Business</option>
                <option if($row[Major] == Management){ selected="selected"}>Management</option>
                <option if($row[Major] == Management Information Systems){ selected="selected"}>Management Information Systems</option>
                <option if($row[Major] == Marketing){ selected="selected"}>Marketing</option>
                <option if($row[Major] == MPA){ selected="selected"}>MPA</option>
                <option if($row[Major] == Supply Chain Management){ selected="selected"}>Supply Chain Management</option>
                <option if($row[Major] == Undeclared){ selected="selected"}>Undeclared</option>
            </select>
        </td>
    </tr>
    <tr>
        <th><br /></th>
        <td><br /></td>
    </tr>
    <tr>
        <td align="center"><input type="submit" name="btnSubmit" value="Submit" /></td>
        <td align="center"><input type="reset" value="Reset" /></td>
    </tr>
</table>
</form>
FORM;

?>

Ответы [ 3 ]

2 голосов
/ 28 ноября 2011

Этот код выглядит так, как будто он может использовать полотенце :

<select name="Major">
<?php
  $options = array(
      'Accounting'
    , 'Business Honors Program'
    , 'Engineering Route to Business'
    , 'Finance'
    , 'International Business'
    , 'Management'
    , 'Management Information Systems'
    , 'Marketing'
    , 'MPA'
    , 'Supply Chain Management'
    , 'Undeclared'
  );

  foreach( $options as $option )
  {
    printf(
      "<option%s>%s</option>\n"
        , ($row['Major'] == $option ? ' selected="selected"' : '')
        , htmlentities($option)
    );
  }
?>
</select>

Вы можете найти некоторые из этого чтения полезными, чтобы помочь объяснить некоторые из понятий, использованных выше:

2 голосов
/ 28 ноября 2011

Вы смешали HTML и PHP без объявления тегов PHP, а также использовали «selected» в качестве атрибута ...

<select name="Major">
    <option <?php echo ($row['Major'] == "Accounting") ? " selected" : ""; ?>>Accounting</option>

    ....

</select>

Я сделал первый, но вы можете следоватьтот же шаблон

1 голос
/ 28 ноября 2011

В вашем коде отсутствуют какие-либо теги, а это означает, что ничего не обрабатывается.Следует использовать что-то еще в этом роде:

<option <?php if($row["Major"] == "Accounting"){ echo "selected"; } ?>>Accounting</option>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...