How to disable page refresh after form submission? ps: not my code.

if (!empty($uname)){ echo "<br><b>Поручено:</b><br>".$uname; echo "<br><br><form action=\""; $_SERVER['PHP_SELF']; echo "\" method='post'>"; echo "<input type='hidden' name='id' value='".$row['id']."'>"; echo "<input type='submit' name='button3' value='Cбросить'>"; echo "</form>"; } else { echo "<br>Назначить:"; echo "<form action=\""; $_SERVER['PHP_SELF']; echo "\" method='post'>"; echo "<select name='stat'>"; echo "<option value=''></option>"; foreach ($specs as $spec){ if($spec['id']==28) { ""; } else { echo "<option value='".$spec['stat']."'>".$spec['name']."</option>"; } } echo "</select><br/>"; echo "<input type='hidden' name='id' value=".$row['id'].">"; echo "<input type='submit' name='button1' value='Назначить'>"; echo "</form>"; } 

Well, now put here the form is not sent

 if (!empty($uname)){ echo "<br><b>Поручено:</b><br>".$uname; echo "<iframe name='responseframe' src='about:blank' style='display:none;'></iframe>"; echo "<form target='responseframe' action=\""; $_SERVER['PHP_SELF']; echo "\" method='post'>"; echo "<input type='hidden' name='id' value='".$row['id']."'>"; echo "<input type='submit' name='button3' value='Cбросить'>"; echo "</form>"; } else { echo "<br>Назначить:"; echo "<iframe name='responseframe' src='about:blank' style='display:none;'></iframe>"; echo "<form target='responseframe' action=\""; $_SERVER['PHP_SELF']; echo "\" method='post'>"; echo "<select name='stat'>"; echo "<option value=''></option>"; foreach ($specs as $spec){ if($spec['id']==28) { ""; } else { echo "<option value='".$spec['stat']."'>".$spec['name']."</option>"; } } echo "</select><br/>"; echo "<input type='hidden' name='id' value=".$row['id'].">"; echo "<input type='submit' name='button1' value='Назначить'>"; echo "</form>"; } 

the page itself

 <?php $ctrl=0; $pg=1; include('inc/contr_menu.php'); $query="SELECT COUNT(*) AS count FROM `control` WHERE `ctrl`='0' AND `date` LIKE '$year-$month%'"; $result = $mysqli->query($query); $count = $result->fetch_assoc(); $cnt=$count['count']; echo "<div width=50% style='float:right;padding-right: 35%; padding-left: 2%;'><h1>Поручения. За ".monthTXT($month)." всего ".$cnt."</h1></div>"; include('inc/search.php'); //*********************************base table **********************************/ $shq=$sh.'control/admin/js/'; $shn=$sh.'control/admin/inc/'; ?> <div id='answer'> <script src="<?=$shq;?>jquery.js" type="text/javascript"></script> <script src="<?=$shq;?>jmin.js" type="text/javascript"></script> <img src="<?=$shq;?>load.gif" style="display:none"> <script type="text/javascript"> $(document).ready(function() { $(".refa").live("click", function() { var id = $(this).attr("id"); var string = 'id='+ id ; $("#otvet"+ id).html("<img src=<?=$shq;?>load.gif>"); $.ajax({ type: "POST", url: "<?=$shn;?>ajax_hide.php", data: string, cache: false, success: function(data) { $("#otvet"+ id).html(data); }, error: function(obj, err) { $("#otvet"+ id).text("Ошибка..."); } }); return false; }); $(".refshow").live("click", function() { var id = $(this).attr("id"); var string = 'id='+ id ; $("#otvet"+ id).html("<img src=<?=$shq;?>load.gif>"); $.ajax({ type: "POST", url: "<?=$shn;?>ajax_show.php", data: string, cache: false, success: function(data) { $("#otvet"+ id).html(data); }, error: function(obj, err) { $("#otvet"+ id).text("Ошибка..."); } }); return false; }); }); </script> <table width='100%' border='1'> <tr><th width='5%'><a href='index.php?sort=desc'>№</a><br><a href='index.php?sort=asc'>ID</a></th><th width='40%'>Поручение</th> <th width='15%'>Отдел<br>Поручено<br>Исполнитель</th> <th><a title="По дате выполнения.По убыванию" href='index.php?sort=date'>Срок</a><br><br><a title="По дате создания" href='index.php?sort=now'>Дата</a></th> <th>Испол<br>-нено</th><th width='20%'>Ответ</th><th width='10%'>Комментарий службы контроля</th><th width='20%'>Документы</th></tr> <?php $i = 1; mb_internal_encoding("UTF-8"); while ($row = $result->fetch_assoc()){ $id_contr = $row['id']; $stat=$row['stat']; $day_performed2=$row['day_performed2']; $dates = explode('-',$row['date']); $date1 = $dates[2]."-".$dates[1]."-".$dates[0]; $spec_id=$row['spec_id']; //$date1 = $dates[2]."-".$dates[1]."-".$dates[0]; $date2 = date('Ym-d'); $datetime1 = new DateTime($date1); $datetime2 = new DateTime($date2); $interval = $datetime1->diff($datetime2); $days_with_symbol = $interval->format('%R%a'); $days = $interval->format('%a'); //Вычисляем цвет, чем больше просрочка тем краснее цвет. //Если просрочка слишком большая и голубой и зеленый цвет в //диапазоне RGB не ушли на отрицательное число приравниваем //$gb = 0; (минимальный цвет для Green и Blue) $gb = 210 - 10*$days; if ($gb<0){ $gb = 0; } $color = rgbtohex(255,$gb,$gb); //Чем меньше дней осталось до конца исполнения поручения, //тем желтее делаем цвет поручения $b = 50*$days; if ($b>255){ $b = 255; } $g = 170 + 20*$days; if ($g>255){ $g = 255; } $color2 = rgbtohex(255,$g,$b); $flag = 0; if (strlen($row['answer'])>400){ $answer = mb_substr($row['answer'],0,400); $answer = $answer."..."; $flag = 1; } else{ $answer = nl2br($row['answer']); } if ($row['ctrl']){ $ctrl = "Да"; } else{ $ctrl = "Нет"; } $specs =array(); $query="SELECT name,stat FROM users WHERE `id_dep`='".$row['dep_id']."'"; $res = $mysqli->query($query); while ($spec = $res->fetch_assoc()){ $specs[] = $spec; } //Начинаем рисовать таблицу echo "<tr><td valign='top'>$i<br>$id_contr</td>"; //Если поручение было с пунктами (item_descr не пустой), //тогда вставляем описание поручения (item_descr) и пункт поручения. //Иначе выводим только пункт (получается поручение из одного пункта) if (!empty($row['item_descr'])){ echo "<td valign='top' >".$row['item_descr']."<br/>".$row['descr']; } else { echo "<td valign='top' >".$row['descr']; } echo "<br/><a href=\"edit.php?id=".$row['id'].$mon."\">Редактировать</a></td>"; echo "<td valign='top'><b>Отдел:</b><br>".$row['dep_name']."<br>"; if($stat==0) { ""; } elseif($stat>0){ $query="SELECT `name` FROM `users` WHERE `stat`='".$stat."'"; $res = $mysqli->query($query); $rod = $res->fetch_assoc(); $uname=$rod['name']; } //Если ответственный специалист за поручение не назначен, то даем //возможность выбрать специалиста из ответственного Отдела if (!empty($uname)){ echo "<br><b>Поручено:</b><br>".$uname; echo "<iframe name='responseframe' src='about:blank' style='display:none;'></iframe>"; echo "<form target='responseframe' action=\""; $_SERVER['PHP_SELF']; echo "\" method='post'>"; echo "<input type='hidden' name='id' value='".$row['id']."'>"; echo "<input type='submit' name='button3' value='Cбросить'>"; echo "</form>"; } else { echo "<br>Назначить:"; echo "<iframe name='responseframe' src='about:blank' style='display:none;'></iframe>"; echo "<form target='responseframe' action=\""; $_SERVER['PHP_SELF']; echo "\" method='post'>"; echo "<select name='stat'>"; echo "<option value=''></option>"; foreach ($specs as $spec){ if($spec['id']==28) { ""; } else { echo "<option value='".$spec['stat']."'>".$spec['name']."</option>"; } } echo "</select><br/>"; echo "<input type='hidden' name='id' value=".$row['id'].">"; echo "<input type='submit' name='button1' value='Назначить'>"; echo "</form>"; } include($_SERVER['DOCUMENT_ROOT'].'/control/admin/inc/script.php'); if ($row['ctrl']){ echo "<td valign='top' bgcolor='#CCC' width='100'>".$rdate."<br>"; if ($row['performed']){ echo "Просрочено на ".$row['performed']; if ($row['performed']==1 || (($row['performed'] % 10)==1 and $row['performed']!=11)){ echo " день"; } elseif($row['performed']<5 || (($row['performed'] % 10)<5 and $row['performed']>15 )){ echo " дня"; } else{ echo " дней"; } } else{ echo "В срок"; } echo "<br>Дата создания:<br> <b>".$day_performed2."</b></td>"; } else{ include($_SERVER['DOCUMENT_ROOT'].'/control/admin/inc/date.php'); } //Рисуем возможность изменять Исполнение путем выбора из выпадающего списка echo "<td valign='top'>"; if ($row['ctrl']){ echo "Да"; } else { if($row['ctrl']==1) { $imgst='lg1'; $tit2='title="Выполнено"'; $clsref='class="refa"'; } else { $imgst='lg2'; $tit2='title="Не выполнено"'; $clsref='class="refshow"'; } echo '<span id=otvet'.$row['id'].'>'; echo '<a '.$tit2.' id="'.$row['id'].'" '.$clsref.'><img class="'.$imgst.'" src="'.$sh.'img/pic.png"></a></span></td>'; } echo "<td width='600' valign='top'>".$answer."<a href=\"/control/admin/detail.php?id=".$row['id']."\">Подробнее</a><br/></td>"; echo "<td valign='top'>".$row['comment']."<br/><a href='add_comment.php?id=".$row['id']."'>Добавить </a></td>"; $refds='<a href="/control/admin/files.php?id_cont='.$id_contr.'"><b>Добавить файлы</b></a>'; echo "<td valign='top'>".$refds."<br>Файлы:<br>"; $query="SELECT file,id FROM `files` WHERE id_cont='".$id_contr."' "; $res = $mysqli->query($query); $d=1; while ($fil = $res->fetch_assoc()){ $dir='http://'.$_SERVER['HTTP_HOST'].'/files/'; $files=$fil['file']; echo $d.' - <a href="'.$dir.$files.'"><span class="txt1"">Скачать</span></a><br>'; $d++; } echo "</td></tr>"; unset($stat); unset($uname); $i++; } echo "</table>"; ?> </div></body></html> 
  • Use AJAX (or for other tasks - JS) - Manitikyl
  • 1. Hash of html in php is bad practice. 2. Either AJAX or header ("Location:") - DaemonHK

2 answers 2

Welcome to StackOverflow.

HTML

 <form target='responseframe'> <button type='submit'>Submit</button> </form> <iframe name='responseframe' src='about:blank'></iframe> 

Php

 echo "<iframe name='responseframe' src='about:blank' style='display:none;'></iframe>"; echo "<form target='responseframe' action=\""; ... 
  • Namany crutch) - Manitikyl
  • and how to write it? via echo? - Anatoly Kupriyanov
  • now my forms are not being sent - Anatoly Kupriyanov
  • You inaccurately copied my code to yourself :) - Igor
  • I assure you copied everything as it should - Anatoly Kupriyanov

Submit data from the form using native js or the jquery library .

I will give an example using jquery:

 <form action="action_name" method="POST" id="myForm"> <input name="my_data1" type="text" /> <input name="my_data2" type="text" /> <input name="my_data3" type="text" /> <button type="submit">Submit</button> </form> <script> $('#myForm').submit(function() { // Отслеживаем событие отправки var string = $(this).serialize(); // Сериализуем все данные формы чтоб не пришлось явно указывать каждое её поле var method = $(this).attr('method'); // Достаем метод отправки var action = $(this).attr('action'); // И урл экшена $.ajax({ // Отправляем данные при помощи метода библиотеки type: method, url: action, data: string, dataType: "json", // Указываем в каком формате ожидаем получить ответ success: function(request) { // Описываем сценарий при получении ответа alert(request.message); }, error: function() { // Описываем сценарий при ошибке отправки alert('error'); } }); }); </script>