2012-01-07 3 views
1

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

Вот мой HTML код формы:

<script type='text/javascript'> 
function notEmpty(elem, helperMsg){ 
if(elem.value.length == 0){ 
    alert(helperMsg); 
    elem.focus(); 
    return false; 
} 
return true; 
} 

<form action="insert.php" method="post"> 
FNAME: <input type="text" name="fname" maxlength="50" id="required"/> 
MNAME: <input type="text" name="mname" maxlength="50" id="required"/> 
LNAME: <input type="text" name="lname" maxlength="50" id="required"/><br/> 

Male <input type="radio" name="gender" value="male" /><br/> 
Female <input type="radio" name="gender" value="female" /><br/> 

College: 
<select name="college"> 
<option value="default"> --- </option> 
<option value="CEC">CEC</option> 
<option value="CAD">CAD</option> 
<option value="COB">COB</option> 
</select> 
</br> 

<input type="submit" name="formSubmit" onclick="notEmpty(document.getElementById('required'), 'Please Enter a Value')" 
value='SUBMIT'/> 
</form> 

мой PHP код:

<?php 

$con = mysql_connect("localhost","abs","abs"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("testdb", $con); 

$sql="INSERT INTO name (fname, mname, lname, gender, college) 
VALUES 
('$_POST[fname]','$_POST[mname]','$_POST[lname]','$_POST[gender]','$_POST[college]')"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 

echo "1 record added"; 

mysql_close($con) 
?> 

Я не могу заставить его работать. Я новичок в php. пожалуйста помогите. Большое спасибо !!

+1

Вы должны использовать уникальные атрибуты идентификатора для каждого из ваших входов. – ryanlahue

+1

никогда не вставляйте предоставленные пользователем данные непосредственно в db. –

+1

Вместо 'id =" required "', почему вы не используете 'required =" required "'? – animuson

ответ

2

Что-то не так в вашем коде. Вы передаете идентификатор одного элемента и хотите проверить все элементы. Идентификатор всех полей одинаковый.

Предложив вам ссылку: http://www.javascriptkit.com/script/script2/formrequired.shtml

показывая живой пример того, что вы хотите. Вы можете взять код отсюда и попробовать.

+0

спасибо большое сэр !! –

+1

Почему вы не приняли ответ на заданные вами вопросы? Даже вы делаете «Спасибо за помощь всем :)» –

+0

им жаль сэр. im только новый в этом. Я не знаю, что есть что-то в этом роде. Мне очень жаль. благодаря вам. теперь я знаю как. :) Я также пробовал этот. как я могу применить это к выпадающим спискам и переключателям? –

1

Ваша функция возвращает значение, но вы его не используете.

onclick="return notEmpty(...

Ложное возвращаемое значение остановит представить.

По этой причине форма по-прежнему отправляется на бэкэнд.

Кроме того, id всегда должен быть уникальным. Использование getElementById вернет вам только один элемент, поэтому вы не проверяете все необходимые поля. Вместо этого вы можете назначить класс требуемых и цикл над элементами.

+1

Следует упомянуть, что его функция будет проверять только одно поле ввода, так как есть несколько полей с этим идентификатором, что позволяет остальным оставаться пустыми (нежелательными). – animuson

+0

@animuson хорошо, я добавлю это. Оставил бы его, поскольку он уже был указан (вроде). Но я думаю, что лучше всего иметь ответ. –

+0

спасибо большое, сэр! –

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