Как зделать проверку на ввод + антирефреш

  • Автор темы CDParker
  • Дата начала

CDParker

Guest
Как зделать проверку на ввод + антирефреш

У мня есть форма для добавления песен, и хочу сделать проверку ввода на яве, как делать проверку пустого поля я знаю, Но у меня в первом поле есть вариант выбора, человек может либо выбрать из списка исполнителя либо поставив галочку напротив "Свой исполнитель" в поле ниже ввести своего исполнителя. Так вот я когда делаю проверку на поле свой исполнитель то возникакет проблема когда человек выбирает исполнителя из списка, тоесть в поле он ничего невводит.

Вот код:
PHP:
<?

$op=$_GET[op];

switch($op) {


    default:
?>

<SCRIPT language=JavaScript>
function checkValid(form){
  if(!new_add.songname.value){
    alert("Невведино наз. песни");
    return(false);
  }
  if(!new_add.about.value){
    alert("Введите тип");
    return(false);
  }
}
</SCRIPT>

<form onsubmit=return(checkValid(this)) name="new_add" action="modules.php?name=Add_Song&op=send" method="POST">

                  
Имя исполнителя*
<?php
$sql=mysql_query("SELECT idartist, name FROM nuke_topmusic_artist");
echo "<select name=\"idartist\" cols=1>";

while($row=mysql_fetch_assoc($sql)){
$idartist=$row[idartist];
$name=$row[name];
echo "<option value=".$idartist.">".$name."</option>";
}
echo "</select">:
?>

                                 
<input type="checkbox" name="notfound">Свой исполнитель:<br>
<input type="text" name="artistname">

Название песни*<input type="text" name="songname">

Тип*<input type="text" name="about">

<input type="submit" value="Отправить песню">

<?php

    break;



    case "send":

$idartist=$_POST[idartist];
$notfound=$_POST[notfound];
$artistname=$_POST[artistname];
$songname=$_POST[songname];
$about=$_POST[about];
$sender_name=$_POST[sender_name];
$sender_email=$_POST[sender_email];
$dopinfo=$_POST[dopinfo];

if($notfound=='on'){
$newartist=1;
}else{
$sql2=mysql_query("SELECT name FROM nuke_topmusic_artist WHERE idartist=$idartist");
$row2=mysql_fetch_assoc($sql2);
$aname=$row2[name];
$artistname=$aname;
}




$add = "INSERT  INTO  `nuke_topmusic_song_temp` (`idartist`,`notfound`,`artistname`,`songname`,`about`,`sender_name`,`sender_email`,`lyrics`,`dopinfo`) 
VALUES ('".$idartist."','".$newartist."','".$artistname."','".$songname."','".$about."') ";

$db->sql_query($add) or die(mysql_error());

    break;

}



?>
урезал лишнее

Может весь код и нестоит выкладывать, но это чтобы было яснее.

ЗЫ
Еще бы зделать так чтобы когда юзер рефрешил страничку данные незаписывались бы повторно в БД
 

Кром

Новичок
>Может весь код и нестоит выкладывать, но это чтобы было яснее.

Ты думаешь, у кого то будет желание этот код смотреть?
Самостоятельно найди тот фрагмент, который отвечает за твою проблему, остальное все сотри.
 

sakon

П..и.н..ок
Лень - страшная штука. Настолько страшная, что непозволяет воспользоваться поиском или почитать, что хотя бы написано на первой странице. Хотя именно на ней (на первой) имеется практически такакя же тема.....
http://phpclub.ru/talk/showthread.php?s=&threadid=64914&rand=8
 

CDParker

Guest
Читал я читал. Но нету там того что нада.
Здесь всё сводиться к одной проблемке с проверкой формы на заполнение в зависимости от чекбокса.
Нужно чтобы яваскрипт
<SCRIPT language=JavaScript>
function checkValid(form){
if(!new_add.songname.value){
alert("Пожалуйста, введите название для песни");
return(false);
}
if(!new_add.about.value){
alert("Пожалуйста, введите тип того что вы вводите, к примеру это может быть текст песни аккорды или таблуатура");
return(false);
}
}
</SCRIPT>

Проверял на заполнение поле artistname только когда чекбокс с именем "notfound" отмечен. Вот такое можете подсказать
 

Мутник

Новичок
CDParker

думаю, здесь много кто по яве понимает, только думать сам пробуй...

PHP:
function check(){
if ((document.forms[form_name].user_songer.checked) && (document.forms[form_name].user_songer_name.value.length == 0)) {
alert('введите исполнителя!');
return false;
}else return true;
}
<input type="submit" onclick="return check();" value="submit">



-----------------

А как тема топика относится к самому твоему вопросу???


p.s. вместо form_name ставишь название своей формы.

Идея, думаю, будет ясна. (если отмечена галка и не написано ничего в поле - посылаем...)
 

CDParker

Guest
О да спасибо это оно, надеюсь. Но очень похоже

цытирую
если отмечена галка и не написано ничего в поле - посылаем

Если галка отмечена а в поле ничего ненаписано посылать ненадо, надо сказать что не заполнено, хотя в коде оно кажеться так, может вы опечатались вконце
Вот эта форма, уже размещённая для наглядности
форма
 

CDParker

Guest
Еще раз спасибо, щась этот код впишу в форму

-~{}~ 02.04.05 01:54:

Какой копирайт ???

-~{}~ 02.04.05 18:21:

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

Мутник

Новичок
Млин, а ты искать в и-нете умеешь?

PHP:
function a(){
if (document.forms.form_name.galochka.checked == true) document.forms.form_name.vvodnoe_pole.disabled = false;
else document.forms.form_name.vvodnoe_pole.disabled = true;
}
<input type="checkbox" value="1" onclick="a();">

что то типа такого...

P.S. тут форум по пхп....
 
Сверху