Форма ввода + JavaScript

motobyba

Новичок
Форма ввода + JavaScript

умеется 2 формы ввода такого рода:

PHP:
 <input type="text" class="long" align="center" size="20" name="v_number" tabindex="3" id="find" value="введите 
номер" onFocus="this.style.backgroundColor='#F0F0F0';this.value='';" onBlur="this.style.backgroundColor='#FFFFFF';
if (this.value != '') {this.onfocus = function(){this.style.backgroundColor='#F0F0F0';};} else this.value='';"/>
отлично работает, но, эта форма ввода необязательнана сайте, тоисть если в эту форму ничего не вписали, то ничего не должно попадать в массив $_GET. но в массив попадает такое: "введите номер".
Вопрос, как сделать так, чтобы когда в форму ничего не вводят, переменная value не передавала своего значения в массив?
 

mity

Новичок
Уж не знаю чем Вам помещали пустые значение в GET.
Избавится от не нужных элементов очень просто, их просто нужно удалить перед отправкой. Только задавайте уникальные id для каждого поля ввода
PHP:
<form method="GET" enctype="multipart/form-data" onSubmit="MySubmit();">
<input 
  type="text" 
  class="long" align="center" size="20" name="v_number" tabindex="3" id="find" 
  value="введите номер" 
  onFocus="this.style.backgroundColor='#F0F0F0';this.value='';" 
  onBlur="this.style.backgroundColor='#FFFFFF'; if (this.value != '') {this.onfocus = function(){this.style.backgroundColor='#F0F0F0';};} else this.value='';"
/>
</form>

<script>
function MySubmit(){
  var elem=document.getElementById("find");
  if(elem.value=='')
	  elem.parentNode.removeChild(elem);
	return true;
};
</script>
<pre>
<?php
print_r($_GET);
?>
</pre>
 

motobyba

Новичок
не получается у меня, в $_GET всеравно попадает "введите номер", или я не правельно делаю? вот код:

PHP:
 <script> 
function MySubmit(){ 
  var elem=document.getElementById("find1"); 
  if(elem.value=='введите номер') 
      elem.parentNode.removeChild(elem); 
    return true; 
}; 
</script> 
<pre> 
<?php 
print_r($_GET); 
?> 
</pre>
 

mity

Новичок
Тот код который я дал работает?
У Вас сейчас
PHP:
var elem=document.getElementById("find1");
А элемент с id = find1, у Вас есть?
В опере есть консоль ошибок JavaScript, она прекрасно показывает подобные ошибки.
И потом надо видеть весь код, чтобы понять почему он не работает.
 

motobyba

Новичок
да, элемент с id = find1 есть.

print_r($_GET); выдает:
Array
(
[v_number] => введите номер
[v_surname] =>
[v_street] =>
[v_town] =>
)

меня интерисует строка if(elem.value=='введите номер') , верно ли тут я прописал "введите номер"? или так делать нельзя?
 

mity

Новичок
Попробуйте
PHP:
<script>  
function MySubmit(){  
  var elem=document.getElementById("find1");  
  alert(elem.value);
  if(elem.value=='введите номер')  {
     alert("Очищаем");
      elem.parentNode.removeChild(elem);  
    };
    return true;  
};  
</script>
И посмотрите
 

motobyba

Новичок
вот весь код формы:

PHP:
   <form action="index.php" method="GET" enctype="multipart/form-data" onsubmit="MySubmit();">
  <table width="900" border="0" height="48px">
  <tr>
        <td width="164"  align="center" valign="middle" class="vvod"><input type="tel_number" class="long" align="center" 
size="20" name="v_number" tabindex="3" id="find1" value="введите номер" 
onFocus="this.style.backgroundColor='#F0F0F0';this.value='';" onBlur="this.style.backgroundColor='#FFFFFF';
if (this.value != '') {this.onfocus = function(){this.style.backgroundColor='#F0F0F0';};} 
else this.value='введите номер';"/></td>
    
        <td width="184"  align="center" valign="middle" class="vvod">
        <input type="tel_surname"  width="120px" class="long" align="center" size="20" name="v_surname" tabindex="3"
 id="find2" value="введите фамилию" onFocus="this.style.backgroundColor='#F0F0F0';this.value='';"
 onBlur="this.style.backgroundColor='#FFFFFF';if (this.value != '') {this.onfocus = function()
{this.style.backgroundColor='#F0F0F0';};} else this.value='введите фамилию';"/>
        </td>
    
         
  <td width="191" align="center" valign="middle"> 
  				<select name="v_street" size="1" id="select_street" style="width:140px">
  				<option first value="" >Выбор улицы</option>
            	<option value="Молокова">Молокова
            	<option value="Одесская">Одесская
            	<option value="Автодоровская">Автодоровская
            	<option value="Корабельная">Корабельная
            	<option value="Ленина">Ленина
            	<option value="ВОРОВСКОГО">воровского
            	</select></td>
  <td width="194" align="center" valign="middle">
  				<select name="v_town" size="1" id="select_town"style="width:150px">
                <option first value="" >Выбор нас.пункта</option>  
                <option value="С БРОД">С БРОД              
                <option value="Л ГОРА ">Л ГОРА              
                <option value="МИГЕЯ">МИГЕЯ               
                <option value="БАНДУРКА">БАНДУРКА            
               <option value="ЧАУСОВО">ЧАУСОВО             
                </select></td>
   <td width="125" align="center" valign="middle" class="submit">
   <input type="submit"  value="Найти" tabindex="6" class="submit" /></td>
  </tr>
</table></form>
поля ввода номера и фамилии не обязательны для ввода. поэтому когда в них ничего не введено, важно чтобы значения value первых 2-х полей ввода не передавались либо удалялись с массива GET. В скриптах я полный 0, поэтому прошу помощи.
 

mity

Новичок
Проверил в трёх браузерах всё прекрасно работает

PHP:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
</head>
<body>
<form  action="index.php" method="GET" enctype="multipart/form-data" onsubmit="MySubmit();"> 
  <table width="900" border="0" height="48px"> 
  <tr> 
  <td width="164"  align="center" valign="middle" class="vvod">
	
	<input type="tel_number" class="long" align="center"  
size="20" name="v_number" tabindex="3" id="find1" value="введите номер"  
onFocus="this.style.backgroundColor='#F0F0F0';this.value='';" onBlur="this.style.backgroundColor='#FFFFFF'; 
if (this.value != '') {this.onfocus = function(){this.style.backgroundColor='#F0F0F0';};}  
else this.value='введите номер';"/>
</td> 
     
        <td width="184"  align="center" valign="middle" class="vvod"> 
        <input type="tel_surname"  width="120px" class="long" align="center" size="20" name="v_surname" tabindex="3" 
 id="find2" value="введите фамилию" onFocus="this.style.backgroundColor='#F0F0F0';this.value='';" 
 onBlur="this.style.backgroundColor='#FFFFFF';if (this.value != '') {this.onfocus = function() 
{this.style.backgroundColor='#F0F0F0';};} else this.value='введите фамилию';"/> 
        </td> 
     
          
  <td width="191" align="center" valign="middle">  
                  <select name="v_street" size="1" id="select_street" style="width:140px"> 
                  <option first value="" >Выбор улицы</option> 
                <option value="Молокова">Молокова 
                <option value="Одесская">Одесская 
                <option value="Автодоровская">Автодоровская 
                <option value="Корабельная">Корабельная 
                <option value="Ленина">Ленина 
                <option value="ВОРОВСКОГО">воровского 
                </select></td> 
  <td width="194" align="center" valign="middle"> 
                  <select name="v_town" size="1" id="select_town"style="width:150px"> 
                <option first value="" >Выбор нас.пункта</option>   
                <option value="С БРОД">С БРОД               
                <option value="Л ГОРА ">Л ГОРА               
                <option value="МИГЕЯ">МИГЕЯ                
                <option value="БАНДУРКА">БАНДУРКА             
               <option value="ЧАУСОВО">ЧАУСОВО              
                </select></td> 
   <td width="125" align="center" valign="middle" class="submit"> 
   <input type="submit"  value="Найти" tabindex="6" class="submit" /></td> 
  </tr> 
</table></form>
<script>
function MySubmit(){   
  var elem=document.getElementById("find1");   
  if(elem.value=='введите номер')  { 
      elem.parentNode.removeChild(elem);   
    }; 

  var elem=document.getElementById("find2");   
  if(elem.value=='введите фамилию')  { 
      elem.parentNode.removeChild(elem);   
    }; 
	
  return true;   
};  
</script>
<pre>
<?php
print_r($_GET);
?>
</pre>
</body>
</html>
Когда у Вас много данных их лучше передавать методом POST, лимит передачи данных методом GET может составлять всего 1 килобайт.

А вообще Вы ерундой занимаетесь, проверки на пустые значения нужно делать на стороне сервера в php а не на JavaScript.
 

motobyba

Новичок
Да действительно ерунда((( но работает именно тот код который ты прислал. Спасибо огромное.разберусь что же я нетак сделал.
это часть курсовой работы, поэтому важно только чтобы все это "хоть как-то работало" на локальном сервере.
 
Сверху