2015-08-27 2 views
0

Я работаю над формой для создания имени и фамилии спортсмена. Это работает так, как должно, заполняя соответствующие части базы данных.PHP - Сохранение выпадающего списка в моей базе данных mysql

Теперь я пришел, чтобы добавить раскрывающийся ящик, в котором они выберут страну спортсмена. К сожалению, я не могу заставить это отображаться в поле athletecountry базы данных. Это находится в той же таблице, что и имя и фамилия.

Я бы очень признателен за любую помощь.

<?php echo ($error != "") ? $error : ""; ?> 
<form action="createathlete.php" method="post"> 
<br> 
<br> 
Athlete Forename: <input type="text" value="<?php echo $athleteforename; ?>" name="athleteforename" /><br/> 
Athlete Surname: <input type="text" value="<?php echo $athletesurname; ?>" name="athletesurname" /><br/> 
Representing: Country:  <select name=$athletecountry tabindex="1"> 
       <optgroup label="Continent"> 
        <option value="Country 1">Country 1</option> 
        <option value="Country 2">Country 2</option> 
        <option value="Country 3">Country 3</option> 
       </optgroup> 
      </select> 
<input type="submit" value="Register" name="submit-form" /> 
    </form> 

Раньше на странице у меня также есть этот код, который я вымотал из нескольких других учебников.

//initialize php variables used in the form 
$athleteforename = ""; 
$athletesurname = ""; 
$userID = ""; 
$athletecountry = ""; 

//check to see that the form has been submitted 
if(isset($_POST['submit-form'])) { 

//retrieve the $_POST variables 
$athleteforename = $_POST['athleteforename']; 
$athletesurname = $_POST['athletesurname']; 
$athletecountry = $_POST['athletecountry']; 

//initialize variables for form validation 
$success = true; 
$userTools = new UserTools(); 

//prep the data for saving in a new user object 
    $data['athleteforename'] = $athleteforename; 
    $data['athletesurname'] = $athletesurname; 
    $data['athletecountry'] = $athletecountry; 
    $data['userID'] = $user->id; 


    //create the new user object 
    $newAthlete = new Athlete($data); 

    //save the new user to the database 
    $newAthlete->save(true); 
+0

Возможно, это была плохая идея не размещать здесь весь код страницы. http://pastebin.com/TvbxFAhK – Geoff

ответ

0

Согласно @Chandu и @taxicala ответы, как только код показывает, как «athletecountry», которое должно быть в порядке.

Проверьте, что класс Athlete() ожидает все элементы массива, возможно, строка страны отбрасывается, потому что по какой-то причине она неожиданна?

+0

Так оно и было - я забыл сказать классу атлета для обработки данных. Вместо этого я как-то ожидал, что он волшебным образом войдет в базу данных. Спасибо, интернет-незнакомец! – Geoff

0

У вас есть опечатка в имени ATTR из выбора:

Изменение:

<select name=$athletecountry tabindex="1"> 

To:

<select name="athletecountry" tabindex="1"> 
+0

Благодарим за помощь. К сожалению, это не устранило проблему. Поле athletecountry по-прежнему не обновляется в базе данных. – Geoff

1

Кажется, вы не даете правильное имя выберите т.е. $ athletecountry

<select name=$athletecountry tabindex="1"> 

изменение

<select name="athletecountry" tabindex="1"> 
+0

Благодарим за помощь. К сожалению, это не устранило проблему. Поле athletecountry по-прежнему не обновляется в базе данных. – Geoff

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