Помощник
|
отправка формы методом post без перезагрузки страницы |
sasha457
|
Сообщение
#1
|
||
|
|
||
|
|||
NiKON_hb |
7.1.2011, 1:48;
Ответить: NiKON_hb
Сообщение
#2
|
|
[PHP]
<!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> <script type="text/javascript"> function SendForm(formid,fieldnames,action){ var count = -1; //проверяем заполненность нужных полей var field = fieldnames.split(','); for(var i=0;i<=field.length;i++){ if($('#'+field[i]).val()==''){//если поле пустое, выделяем его count++; $('#'+field[i]).css({backgroundColor: "#FFCECE",border: "1px solid #BB0000"}); if(count==0)$('#'+field[i]).focus();//ставим курсор в первое незаполенное поле //выводим сообщение $('#err_'+field[i]).hide(); $('#err_'+field[i]).html('заполните поле'); $('#err_'+field[i]).fadeIn('slow'); }else{//если поле заполено, отменяем выделение $('#'+field[i]).css({backgroundColor: "#fff",border: "1px solid #888"}); $('#err_'+field[i]).empty(); } } //если все поля заполены, отправвляем обработчику if(count==-1){ var dataString = $('#'+formid).serialize();//собираем все данные в строку $.ajax({ type: "POST", url: action, data: dataString, success: function(data){ //если в ответе содержится символ '/', выводим сообщение об ошибке заполнениия if(data.indexOf('/')>-1){ field = data.split('/');//отделяем сообщение от id (name) поля $('#'+field[1]).css({backgroundColor: "#FFCECE",border: "1px solid #BB0000"}); if(count==0)$('#'+field[1]).focus(); $('#err_'+field[1]).hide(); $('#err_'+field[1]).html(field[0]); $('#err_'+field[1]).fadeIn('slow'); }else{ //если форма отправлена успешно выводим alert с текстом сообщения alert(data); $('#'+formid)[0].reset(); //сбрасываем значения формы } } }); } } </script> </head> <body> <?php echo $_POST['nick']; ?> <form id="regForm" name="regForm" action="" method="post" > <input name="nick" id="nick" type="text" value="" > <input type="submit" id="Send" value="send" onclick="SendForm('regForm','nick','fine.php');return false"> </form> </body> </html>[/PHP] Вот - только принимает этот же документ. |
|
|
sasha457
|
Сообщение
#3
|
|
ток у тя все равно страница перезагружается.!!Ахахах)))
с таким же успехом я могу вот так сделать <?php echo $_POST['nick']; ?> <form id="regForm" name="regForm" action="" method="post" > <input name="nick" id="nick" type="text" value="" > <input type="submit" id="Send" value="send" onclick="SendForm('regForm','nick','fine.php');return false"> </form> тож самое. У тя скрипт неработает!!!!! |
|
|
NiKON_hb |
7.1.2011, 2:20;
Ответить: NiKON_hb
Сообщение
#4
|
|
она перезагружается потому что она же принимает выставите другой "приниматель". Хотя возможно я ошибся
|
|
|
LifeUP |
7.1.2011, 2:22;
Ответить: LifeUP
Сообщение
#5
|
|
много кода...
index.html <form action="" method="post"> Имя: <input name="name" type="text" maxlength="128"><br /> <input name="submit" type="submit" value="Отправить" onClick="saveform (this.form);return false;"> </form> <div id="enter_name"></div> <script type="text/javascript" src="jquery-1.4.4.min.js"></script> <script type="text/javascript"> function saveform (data) { var name = data.name.value; $.post('save.php',{name:name},function(data){ $('#enter_name').html(data); },'json'); } </script> save.php [PHP] die (json_encode ($_POST['name'])); [/PHP] Не забудьте библиотеку jquery подключить |
|
|
NiKON_hb |
7.1.2011, 3:05;
Ответить: NiKON_hb
Сообщение
#6
|
|
LifeUP, спасибо. Вы помогли и мне.
|
|
|
sasha457
|
Сообщение
#7
|
|
Спасибо)! Надо начинать активно юзать ajax))
|
|
|
gr1mm3r |
3.7.2012, 15:48;
Ответить: gr1mm3r
Сообщение
#8
|
|
Для тех кто хочет данным скриптом дальше обрабатывать полностью форму.
(Мого вопросов по этому скрипту ходит в интернетах) [JS] <form action="" method="post"> Имя: <input name="name" type="text" maxlength="128"> Фамилия: <input name="fname" type="text" maxlength="128"> <input name="submit" type="submit" value="Отправить" onClick="saveform (this.form);return false;"> </form> <div id="enter_name"></div> <script type="text/javascript" src="jquery-1.4.4.min.js"></script> <script type="text/javascript"> function saveform (data) { var name = data.name.value; var fname = data.fname.value; $.post('save.php',{name:name,fname:fname},function(data){ $('#enter_name').html(data); },'json'); } </script> [/JS] [PHP] #Обязательно перечисляем все переменные которые есть в выводе $name = $_POST['name']; $fname = $_POST['fname']; # #Если их много и поля обработки совпадают можно использовать foreach #$vars = $_POST; #foreach ($vars as $key => $value){ # $$key = $value; # } # #Работает как автоназначение $name=$_POST['name'] # #тутможно написать запрос к базе на изменение данных типа #$vyvod = "конец запроса"; #$db = mysql_query(UPDATE ........); die (json_encode ($name . $fname)); #или #die (json_encode ($vyvod)); [/PHP] |
|
|
foresh |
23.9.2012, 17:26;
Ответить: foresh
Сообщение
#9
|
|
Объясните пожалуйста, можно ли передать значение radio?
[JS]<form action="" method="post"> <input id="Radio1" type="radio" class="RadioClass" name="sizes" value="1" > <label id="Label1" for="Radio1" class="RadioLabelClass1"></label> <input id="Radio2" type="radio" class="RadioClass" name="sizes" value="2"/> <label id="Label2" for="Radio2" class="RadioLabelClass2"></label> <input id="Radio3" type="radio" class="RadioClass" name="sizes" value="3"/> <label id="Label3" for="Radio3" class="RadioLabelClass3"></label> <input id="Radio4" type="radio" class="RadioClass" name="sizes" value="4"/> <label id="Label4" for="Radio4" class="RadioLabelClass4"></label> <input name="submit" type="submit" value="Отправить" onClick="saveform (this.form);return false;"> </form> <div id="enter_name"></div> <script type="text/javascript" src="jquery-1.4.4.min.js"></script> <script type="text/javascript"> function saveform (data) { var sizes = data.sizes.value; $.post('save.php',{sizes:sizes},function(data){ $('#enter_name').html(data); },'json'); } </script>[/JS] [PHP]$size = $_POST['sizes']; $out = fopen("new.txt", "a"); fwrite($out, "$size"."\n");[/PHP] Сделал так, но не сохраняет значение. |
|
|
Sirocco_hb |
7.10.2012, 13:24;
Ответить: Sirocco_hb
Сообщение
#10
|
|
А подскажет кто-нибудь, как сделать простейшую кнопку, по нажатию на которую отправлялся бы post запрос, заранее прописанный для этой кнопки, но это всё нужно без перезагрузки и обновления страницы. Принимать и обрабатывать их не нужно.
Это нужно для устройства, которое управляется по web путём post запросов. То есть так: перехожу в браузере по адресу http://192.168.1.7/?Bra=1 и лампа загорается, перехожу по http://192.168.1.7/?Bra=0 и лампа тухнет. Вот хотелось бы реализовать кнопку. Пока сделал так: [PHP]include('simple_html_dom.php'); $html = file_get_html('http://192.168.1.7'); if(isset($_POST['execute'])){ $sURI = 'http://192.168.1.7/?'.$_POST['comand']; file_get_contents($sURI); header("Location: {$_SERVER['PHP_SELF']}"); } $cont .= '<form method="POST">'; $cont .= '<input type="hidden" name="comand" value="Bra=1">'; $cont .= '<input type="submit" name="execute" value="Бра ON">'; $cont .= '</form>'; $cont .= '<input type="hidden" name="comand" value="Bra=0">'; $cont .= '<input type="submit" name="execute" value="Бра OFF">'; $cont .= '</form>';[/PHP] Но это как-то криво, и перезагружается страница. Помогите, пожалста. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
PROXY-STORE.COM — ipV4 прокси от 42р В МЕСЯЦ с ротацией и без! Лучшая цена на рынке. 200+ стран | 21 | proxystore | 5297 | Сегодня, 12:02 автор: proxystore |
|
Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC | 22 | Krok | 6741 | 12.4.2024, 5:17 автор: Krok |
|
Скрипты и программы на заказ любой сложности. Без предоплаты. Быстро, качественно и недорого! | 5 | c4p1t4l15t | 2514 | 6.4.2024, 12:51 автор: c4p1t4l15t |
|
Обменяю Юмани на гривны без комиссии | 3 | freeax | 1004 | 2.4.2024, 1:46 автор: Llirik |
|
Сайт не индексируется в Google без добавления ссылок в адурилку | 4 | Nekit | 1083 | 20.3.2024, 21:44 автор: MorKer |
Текстовая версия | Сейчас: 19.4.2024, 23:56 |