Отправка данных выбранного блока в БД без перезагрузки страницы

Дмитрий

Всем привет. Циклом foreach подгружаю из базы данных посты как на примере: "пост 1" "пост 2" "пост 3" и тд.

Задача отредактировать один пост, выставить нужную рубрику и т.д. после отправить в БД без перезагрузки страницы. Потом отредактировать второй пост и также отправить его в БД. Подскажите, пожалуйста, как лучше всего добиться: чтобы при нажатии кнопки "отправить" отправлялся только конкретны пост один раз (в моем коде когда нажимаешь кнопку "отправить" пост дублируется в БД несколько раз) без перезагрузки страницы а кнопка "отправить" становилась не активной?

Мой код:

//---------------*  Цикл подгрузки постов *---------------//

foreach($b['response'] as $value) :
if (!$value['text']) continue;

?>
<form method="post" action="parser.php">


      <div class="horisontal-container">
         <div class="full-block-1">
            " size="48"><!--explode — Разбивает строку с помощью разделителя-->
            <div class="photo"> 
                <!--? for($i = 0; $i < 6; $i++) { // переберает фотографии ?--> 
               
                <!--?php } ?-->
            </div>
         </div>
         <div class="full-block-2">
            <textarea rows="17" cols="47" name="text" placeholder="Описание"><? echo  $text_clean; ?></textarea>
         </div>
         <div class="vertical-container">
            <div class="row-item-1"> </div>
            
            <div class="row-item-2"> </div>
            <div class="row-item-2"> </div>
            <div class="row-item-2"> </div>



<!--?
//---------------*  Подгрузка городов из БД *---------------//



  $sql_region = "SELECT * FROM `regions`";
  $result_select = mysqli_query($on_link, $sql_region);
    echo "<select class='row-item-2' name = 'region'-->";
    echo "<option value="0">Город</option>";                             
        while($object = mysqli_fetch_object($result_select)){
            echo "<option value="$object->id"> $object->name </option>";
        }
    echo "";



//---------------*  Подгрузка Категорий из БД *---------------//
    echo $cat;


?>


<!--------------------- Блок с кнопками --------------------------->

   </div>
         <div class="vertical-container buttom-block">
            
            <a href="#" class="buttom-delete" onclick="return deleteRow(this)">Удалить</a>
         </div>
         
      </div>

</form>

<!--?php


//---------------*  Отправка в  БД *---------------//

if(isset($_POST['add'])) {

$time = time();
$date_del = $time + 86400*30;
$ip = '111.111.111.111';
$status = 1;
$sendmail = 0;
$marked = 0;
$raised = 0;
$approved = 1;
$uid = '123123123';
$user_id = 0;
$text = $_POST['text'];
$user_name = $_POST['name'];
$email = $_POST['email'];
$title = $_POST['title'];
$cat_select = $_POST['cat'];
$region_select = $_POST['region'];




mysqli_query($on_link,"
INSERT INTO db(uid,ip,cat,user,region,date_add,date_del,user_id,status,sendmail,email,title,text,marked,approved,raised) 
VALUES('$uid','$ip','$cat_select','$user_name','$region_select','$time','$date_del','$user_id','$status','$sendmail','$email','$title','$text','$marked','$approved','$raised')");

mysqli_close();

}

?-->





<!--------------------- Конец цикла --------------------------->

<!--?php endforeach; ?-->








?>
1 ответ

Дмитрий

Что бы сохранить запись в базе без перезагрузки страницы Вам нужно использовать AJAX запрос. Сейчас, судя по коду, у Вас одним скриптом обрабатывается и формирование формы, и сохранение.

licensed under cc by-sa 3.0 with attribution.