Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Плиииз, нужна помощ на JavaScript
 
 автор: SaIdEr   (06.01.2009 в 14:25)   письмо автору
 
 

у меня такая проблема, я создал HTML форму, в которой присудствует две кнопки, оправить и перейти на другую страницу, так вот в чем у меня проблема, я написал на JavaScript переход но не могу дописать его, вот пример что я написал:

<SCRIPT>
<!--
function of_z(t_urls) {
document.location.href =t_urls+'/index.php?';
}
-->
</SCRIPT>

<form action="index.html" method=GET>
<input type=checkbox name="auto_1" value="1"><br>
<input type=checkbox name="auto_2" value="2"><br>
<input type=checkbox name="auto_3" value="3">
...........
<input type="submit" value="оправить">
<input type="button" onClick="of_z('http://localhost')" value="перейти на другую страницу">
</form>
А мне нужно что бы это работало так:

при нажатии на кнопку "перейти на другую страницу" у меня должна формироваться примерно такая ссылка: http://localhost/index.php?auto_1=1&auto_3=3,
ну что бы ссылка фостраивалась в зависимости от того, на какую пользователь форму поставит галочку

  Ответить  
 
 автор: ddhvvn   (06.01.2009 в 15:54)   письмо автору
 
   для: SaIdEr   (06.01.2009 в 14:25)
 

Нужно завести переменную с адресом.
На каждый чекбокс повесить функцию , которая будет проверять состояние чекбокса (отмечен/не отмечен) и изменять строку с адресом.
При нажатии на кнопку, функции передается переменная + что Вам там надо

  Ответить  
 
 автор: SaIdEr   (06.01.2009 в 16:45)   письмо автору
 
   для: ddhvvn   (06.01.2009 в 15:54)
 

А помоч дописать мне его не поможете?
А то я в JavaScript не селен!

  Ответить  
 
 автор: mikha   (06.01.2009 в 17:01)   письмо автору
 
   для: SaIdEr   (06.01.2009 в 14:25)
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title></title>
</head>
<body>
<script type="text/javascript" language="javascript">
<!--
function of_z(t_urls){
    var url = '';
    if(document.form_.auto_1.checked == true) url += '&auto_1=' + document.form_.auto_1.value;
    if(document.form_.auto_2.checked == true) url += '&auto_2=' + document.form_.auto_2.value;
    if(document.form_.auto_3.checked == true) url += '&auto_3=' + document.form_.auto_3.value;
    document.location.href = t_urls+'/test.php?' + url.substr(1);
}
-->
</script>
<form action="test.php" method="GET" name="form_">
  <input type="checkbox" name="auto_1" value="1"/><br />
  <input type="checkbox" name="auto_2" value="2"/><br />
  <input type="checkbox" name="auto_3" value="3"/>
  <input type="submit" value="оправить"/>
  <input name="" type="button" onClick="of_z('http://test15.ru')" value="перейти на другую страницу"/>
</form>
</body>
</html>

  Ответить  
 
 автор: SaIdEr   (07.01.2009 в 16:39)   письмо автору
 
   для: mikha   (06.01.2009 в 17:01)
 

ну да, система работы такая какая мне нужна, но есть один нюанс
у меня не 3 формы checkbox, а у меня эти формы добаляются в зависимости от добавления пользователями для примера так
<input type="checkbox" name="auto_1" value="1"/><br />
<input type="checkbox" name="auto_2" value="2"/><br />
<input type="checkbox" name="auto_3" value="3"/ и так далее
сможешь переделать эту Javascript форму под такую работу?

  Ответить  
 
 автор: ddhvvn   (07.01.2009 в 18:14)   письмо автору
 
   для: SaIdEr   (07.01.2009 в 16:39)
 

ммм.. примерно так

function of_z(t_urls,count){ 
    var url = ''; 
    for (i=1;i<=count;i++)
      if (document.getElementByName('auto_'+i)[0].checked)
         url += '&auto_'+i+'=' + document.getElementByName('auto_'+i)[0].value; 
    document.location.href = t_urls+'/test.php?' + url.substr(1); 
}

  Ответить  
 
 автор: SaIdEr   (07.01.2009 в 23:18)   письмо автору
 
   для: SaIdEr   (06.01.2009 в 14:25)
 

Подскажите пожалуйста, а так ка я сделал, так можно делать, на всех браузерах работать будет?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<title></title> 
</head> 
<body> 
<script type="text/javascript" language="javascript"> 
<!-- 
function of_z(t_urls,count_t){  
    var url = '';  
for (i=1;i<='3';i++){
if(document.getElementById('auto_['+i+']').checked) url += '&auto_'+i+'=' + document.getElementById('auto_['+i+']').value;
document.location.href = t_urls+'/1.html?' + url.substr(1);
}
}
--> 
</script> 
<form action="test.php" method="GET"> 
  <input type="checkbox" name="auto_1" id='auto_[1]' value="1"/><br /> 
  <input type="checkbox" name="auto_2" id='auto_[2]' value="4"/><br /> 
  <input type="checkbox" name="auto_3" id='auto_[3]' value="3"/>
  <input type="submit" value="оправить"/> 
  <input name="" type="button" onClick="of_z('.')" value="перейти на другую страницу"/> 
</form> 
</body> 
</html>

  Ответить  
 
 автор: mikha   (08.01.2009 в 08:31)   письмо автору
 
   для: SaIdEr   (07.01.2009 в 23:18)
 

Не знаю как во всех браузерах, но вот ещё вариант. Сколько угодно чекбоксов, не надо указывать их колличество и редактировать функцию.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title></title>
</head>
<body>
<script type="text/javascript" language="javascript">
<!--
function of_z(this_, url){
    var url_arr = new Array();
    var object = this_.parentNode;
    for(var i = 0, len = object.length, n = 0; i < len; i++){
        if(object[i].type == 'checkbox' && object[i].checked){
            url_arr[n] = object[i].name + '=' + object[i].value; n++;
        }
    }
    if(url_arr.length > 0) document.location.href = url + '?' + url_arr.join("&"); else return;
}
-->  
</script>
<form action="test.php" method="GET">
  <input type="checkbox" name="auto_1" id='auto_[1]' value="1"/><br />
  <input type="checkbox" name="auto_2" id='auto_[2]' value="4"/><br />
  <input type="checkbox" name="auto_3" id='auto_[3]' value="3"/>
  <input type="submit" value="оправить"/>
  <input name="" type="button" onClick="of_z(this, 'http://test15.ru/test.php')" value="перейти на другую страницу"/>
</form>
</body>
</html>

Впрочем если что то не так написал, буду рад если поправят.

  Ответить  
 
 автор: SaIdEr   (08.01.2009 в 17:49)   письмо автору
 
   для: mikha   (08.01.2009 в 08:31)
 

К тебе такой вопрос mikha, почему с твоим Java скриптом когда я беру HTML форму в таблицу, то он отказвается работать?



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<title></title> 
</head> 
<body> 
<script type="text/javascript" language="javascript"> 
<!-- 
function of_z(this_, url){ 
    var url_arr = new Array(); 
    var object = this_.parentNode; 
    for(var i = 0, len = object.length, n = 0; i < len; i++){ 
        if(object[i].type == 'checkbox' && object[i].checked){ 
            url_arr[n] = object[i].name + '=' + object[i].value; n++; 
        } 
    } 
    if(url_arr.length > 0) document.location.href = url + '?' + url_arr.join("&"); else return; 

-->   
</script> 

<table border="0">
<tR>
<form action="test.php" method="GET"> 
<td><input type="checkbox" name="auto_1" id='auto_[1]' value="1"/></td> 
<td><input type="checkbox" name="auto_2" id='auto_[2]' value="4"/></td> 
<td><input type="checkbox" name="auto_3" id='auto_[3]' value="3"/></td>
<td><input type="submit" value="оправить"/></td>
<td><input name="" type="button" onClick="of_z(this, 'http://test15.ru/test.php')" value="перейти на другую страницу"/></td>
</form> 
</tr>
</table>
</body> 
</html> 

Может быть кто то знает в чем проблема?

  Ответить  
 
 автор: PAT   (08.01.2009 в 18:42)   письмо автору
 
   для: SaIdEr   (08.01.2009 в 17:49)
 

Потому что для кнопки объектом parentNode будет ячейка, а не форма.
И потому что перебирать надо не формы на странице, а элементы одной формы через её коллекцию elements:
function of_z(object, url){ 
    var url_arr = new Array(); 
    for(var i = 0, len = object.elements.length, n = 0; i < len; i++){ 
        if(object.elements [i].type == 'checkbox' && object.elements [i].checked){ 
            url_arr[n] = object.elements [i].name + '=' + object.elements [i].value; n++; 
        } 
    } 
    if(url_arr.length > 0) document.location.href = url + '?' + url_arr.join("&"); else return; 

...
<input name="" type="button" onClick="of_z(this.form, 'http://test15.ru/test.php')" value="перейти на другую страницу"/>


PS. Значения идентификаторов (ID) должны быть ВАЛИДНЫМИ именами, т.е. начинаться с буквы и содержать ТОЛЬКО буквы, цифры и символ подчёркивания. Квадратных скобок в именах быть не должно.

  Ответить  
 
 автор: mikha   (08.01.2009 в 19:28)   письмо автору
 
   для: PAT   (08.01.2009 в 18:42)
 

С просонья сразу не сообразил. Разумеется как вы написали лучше чем я ниже отписался. Нет привязки к конкретной форме, можно использовать функцию ещё где либо.
ЗЫ. Автору темы, делай как PAT написал, вот полный вариант
<script type="text/javascript" language="javascript"> 
<!-- 
function of_z(object, url){  
    var url_arr = new Array();  
    for(var i = 0, len = object.elements.length, n = 0; i < len; i++){  
        if(object.elements [i].type == 'checkbox' && object.elements [i].checked){  
            url_arr[n] = object.elements [i].name + '=' + object.elements [i].value; n++;  
        }  
    }  
    if(url_arr.length > 0) document.location.href = url + '?' + url_arr.join("&"); else return;  
}
-->
</script>
<form action="test.php" method="GET">
  <table>
    <tr>
      <td><input type="checkbox" name="auto_1" value="1"/></td>
      <td><input type="checkbox" name="auto_2" value="4"/></td>
      <td><input type="checkbox" name="auto_3" value="3"/></td>
      <td><input type="submit" value="оправить"/></td>
      <td><input name="" type="button" onClick="of_z(this.form, 'http://test15.ru/test.php')" value="перейти на другую страницу"/></td>
    </tr>
  </table>
</form>

  Ответить  
 
 автор: mikha   (08.01.2009 в 19:18)   письмо автору
 
   для: SaIdEr   (08.01.2009 в 17:49)
 

Дело не в id или не совсем в них. id о которых выше идёт речь можешь вообще удалить, собственно функцию писал ради того что бы от них избавиться, просто забыл их удалить.
Дело в том что добавив таблицу мы меняем родителя у... короче не вникай.
Добавь имя для формы, в общем исправь вот так
<script type="text/javascript" language="javascript"> 
<!-- 
function of_z(url){
    var url_arr = new Array();
    var object = document.forms.nameMyForm;
    for(var i = 0, len = object.length, n = 0; i < len; i++){
        if(object[i].type == 'checkbox' && object[i].checked){
            url_arr[n] = object[i].name + '=' + object[i].value; n++;
        }
    }
    if(url_arr.length > 0) document.location.href = url + '?' + url_arr.join("&"); else return;
}
-->
</script>
<form action="test.php" method="GET" name="nameMyForm">
  <table>
    <tr>
      <td><input type="checkbox" name="auto_1" value="1"/></td>
      <td><input type="checkbox" name="auto_2" value="4"/></td>
      <td><input type="checkbox" name="auto_3" value="3"/></td>
      <td><input type="submit" value="оправить"/></td>
      <td><input name="" type="button" onClick="of_z('http://test15.ru/test.php')" value="перейти на другую страницу"/></td>
    </tr>
  </table>
</form>

По идее должно быть всё хокей.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования