2015-12-25 3 views
1

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

Что он делает, это позволяет мне редактировать данные игроков/пользователей с помощью функций формы, таких как текстовые входы и выпадающие меню.

По существу проблема заключается в том, что если бы я должен был открыть это, чтобы отредактировать уже существующий плеер, тогда нажмите кнопку отправки, не касаясь чего-либо еще, первое имя и фамилия будут одинаковыми; однако идентификатор и позиция команды будут изменены на 0 в базе данных. Если бы я должен был проверять элемент, он показывал бы правильный номер; в этом случае это (идентификатор команды = 3 и позиция = 6).

Вот запрос к базе данных (PDO):

$query = "SELECT * FROM players, teams WHERE playerid = ? AND players.teamid = teams.teamid"; 
$stmt = $conn->prepare($query); 
$stmt->execute(array($_GET['id'])); 
$info = $stmt->fetchAll(PDO::FETCH_ASSOC)[0]; 

Примечание: Этот запрос получает все необходимые данные для формы и отлично работает в потянув эти данные из.

Теперь форма - это то, где я считаю, что это проблема. Вот полная форма вынимает из того же PHP файла:

<form role="form" action="" method="post"> 
            <!-- text input --> 
            <div class="form-group"> 
             <label>First Name</label> 
             <input type="text" name="firstName" class="form-control" placeholder="<?php echo $info['firstName']; ?>" value="<?php echo $info['firstName']; ?>" /> 
            </div> 
            <div class="form-group"> 
             <label>Last Name</label> 
             <input type="text" name="lastName" class="form-control" placeholder="<?php echo $info['lastName']; ?>" value="<?php echo $info['lastName']; ?>" /> 
            </div> 
            <div class="form-group"> 
             <label>Team ID</label><br/> 
             <select class="form-control" name="teamid"> 
              <option value="<?php echo $info['teamid']; ?>" disabled="enabled" selected="selected"><?php echo $info['name']; ?></option> 
              <?php 
               $sql = "SELECT * FROM teams"; 
               $stmt = $conn->prepare($sql); 
               $stmt->execute(); 
               $i = 0; 
                while ($teamListRow = $stmt->fetch(PDO::FETCH_ASSOC)) { 
                 $teamListArray[$i]['teamid'] = $teamListRow['teamid']; 
                 $teamListArray[$i]['name'] = $teamListRow['name']; 
                 echo "<option value='{$teamListArray[$i]['teamid']}'>{$teamListArray[$i]['name']}</option>"; 
                 $i++; 
                } 
              ?> 
             </select>          
            </div> 
            <div class="form-group"> 
             <label>Position</label><br/> 
             <select class="form-control" name="position"> 
              <option value="<?php echo $info['position']; ?>" disabled="enabled" selected="selected"> 
              <?php 
              if($info['position'] == 1) { 
               echo "1 - Loosehead Prop"; 
              } elseif($info['position'] == 2) { 
               echo "2 - Hooker"; 
              } elseif($info['position'] == 3) { 
               echo "3 - Tighthead Prop"; 
              } elseif($info['position'] == 4) { 
               echo "4 - Second Row"; 
              } elseif($info['position'] == 5) { 
               echo "5 - Second Row"; 
              } elseif($info['position'] == 6) { 
               echo "6 - Blindside Flanker"; 
              } elseif($info['position'] == 7) { 
               echo "7 - Openside Flanker"; 
              } elseif($info['position'] == 8) { 
               echo "8 - Number Eight"; 
              } elseif($info['position'] == 9) { 
               echo "9 - Scrum-Half"; 
              } elseif($info['position'] == 10) { 
               echo "10 - Fly-Half"; 
              } elseif($info['position'] == 11) { 
               echo "11 - Left Wing"; 
              } elseif($info['position'] == 12) { 
               echo "12 - Inside Centre"; 
              } elseif($info['position'] == 13) { 
               echo "13 - Outside Centre"; 
              } elseif($info['position'] == 14) { 
               echo "14 - Right Wing"; 
              } elseif($info['position'] == 15) { 
               echo "15 - Full Back"; 
              } else { 
               echo "16/20 - Reserve"; 
              } 

              ?> 
              </option> 
              <option value='1'>1 - Loosehead Prop</option> 
              <option value='2'>2 - Hooker</option> 
              <option value='3'>3 - Tighthead Prop</option> 
              <option value='4'>4 - Second Row</option> 
              <option value='5'>5 - Second Row</option> 
              <option value='6'>6 - Bindside Flanker</option> 
              <option value='7'>7 - Openside Flanker</option> 
              <option value='8'>8 - Number Eight</option> 
              <option value='9'>9 - Scrum-Half</option> 
              <option value='10'>10 - Fly-Hald</option> 
              <option value='11'>11 - Left Wing</option> 
              <option value='12'>12 - Inside Centre</option> 
              <option value='13'>13 - Outside Centre</option> 
              <option value='14'>14 - Right Wing</option> 
              <option value='15'>15 - Full Back</option> 
              <option value='16'>16 - Reserve</option> 
              <option value='17'>17 - Reserve</option> 
              <option value='18'>18 - Reserve</option> 
              <option value='19'>19 - Reserve</option> 
              <option value='20'>20 - Reserve</option> 
             </select>          
            </div> 
            </div> 
            <div class="box-footer"> 
             <input type="submit" name="submit" class="btn btn-primary" value="Submit" style="margin-left:-10px;" /> 
            </div> 

            </form> 

Примечания: все работает до того момента, я ударил представить! Как только я нажму, отправьте два раскрывающихся меню, измените их результат на 0

Пс: Извините, если я плохо объяснил, пожалуйста, не разбивайте меня, а также старайтесь дать конструктивную критику там, где это возможно, поскольку я все еще остаюсь обучение!

ответ

3

Это происходит из-за disabled="enabled" selected="selected" в ваших вариантах для двух <select> выпадающих списков.

Сначала вы отключите этот параметр, чем вы его маркируете.

Удалить disabled="enabled" и попробовать ..

+0

Вы надо мной шутить! Я мог бы поклясться, что избавился от этого раньше! Большое вам спасибо за вашу помощь, я так долго смотрел на нее! – Lachie

+0

рад помочь :) –

Смежные вопросы