Создание ответа Ajax и его отображение - PullRequest
0 голосов
/ 08 мая 2020

Если бы кто-нибудь мог указать мне правильное направление с помощью этого кода, я бы очень оценил его, расскажите мне, как отлаживать или указать мне правильное направление.

Когда я нажимаю кнопку сохранения, база данных получает обновлено, я хочу отправить новые данные обратно в ajax и отобразить их в тех же столбцах, что и входные данные where.

Вопрос: Как мне вернуть данные в ответ от PHP до Ajax и обновить столбцы новым текстом?

Я внедрил код из этого потока в свой проект: Разрешить редактирование динамического текста c php таблица

Это мой код внешнего интерфейса:

<div class="planerarad momentrad" data-row="<?php echo $pmomentID; ?>" ondblclick="toggleaction<?php echo $pmomentID; ?>()">

<div data-column='name' class="ansvar <?php echo $rowp['status'];?>">
  <?php echo $rowp['ansvarig'];?>
</div>  

<div data-column='moment' class="moment <?php echo $rowp['status'];?>">
  <?php echo $rowp['moment'];?>
</div>

<div data-column='deadline' class="deadline <?php echo $rowp['status'];?>">
  <?php
   echo $rowp['deadline'];?>
</div>

<div class="icon">
</div>

<div class="moment-meny">

  <div class="m-current">                
    <?php  if ($pstatus == 0) { ?>
    <button type="button"><i class="far fa-question-circle"></i></button>
    <?php 
    } elseif ($pstatus == 1) { ?>
    <button><i class="fas fa-user-check"></i></button>
    <?php 
    } elseif ($pstatus == 2) { ?>
    <button><i class="fas fa-exclamation"></i></button>
    <?php 
    } elseif ($pstatus == 3) { ?>
    <button><i class="fas fa-check"></i></button>
    <?php  } ?>
  </div>
  <div class="ärendeadmin">
    <div class="m-remove">
      <form action="scripts/s_editPlan.php" method="post" id="deletePlan<?php echo $pmomentID; ?>">
      <input type="hidden" name="momentid" value="<?php echo $pmomentID ;?>">
      </form>
      <button name="deleteMoment" type="submit" form="deletePlan<?php echo $pmomentID; ?>"><i class="fas fa-trash-alt"></i></button>
    </div>

    <div class="m-edit">
      <button class="closeWindow btn-info"><i class='fas fa-edit'></i></button>
    </div>
  </div>

А вот jquery для замены текста входными данными и отправки в php файл:

<script>
$( function(){

$(document).on("click", ".btn-info", function(){

    var parent = $(this).closest(".momentrad");
    var id = $(parent).attr("data-row");
    var name = $(parent).children("[data-column='name']");
    var moment = $(parent).children("[data-column='moment']");
    var deadline = $(parent).children("[data-column='deadline']");
    var nameTxt = $(name).html();
    var momentTxt = $(moment).html();
    var deadlineTxt = $(deadline).html();

    $(name).html("<input class='input' list='users' name='name' data-dc='ansv' value='"+$.trim(nameTxt)+"'>");
    $(moment).html("<input name='moment' data-dc='moment' value='"+$.trim(momentTxt)+"'>");
    $(deadline).html("<input type='date' max='9999-12-31' data-dc='deadline' value='"+$.trim(deadlineTxt)+"' name='deadline'>");

    $(this).replaceWith("<button class='btn-info-save'>Save</button>");
});

})
</script>
<script>
$(function(){

$(document).on("click", ".btn-info-save", function(){

    var parent = $(this).closest(".momentrad");
    var id = $(parent).attr("data-row");
    var data = {id: id};
    var name = $(parent).children("[data-column='name']");
    var moment = $(parent).children("[data-column='moment']");
    var deadline = $(parent).children("[data-column='deadline']");

    $("[data-dc]").each( function(){
        var col = $(this).attr("data-dc");
        var val = $(this).val();

        data[col] = val;
        console.log(data);
    });

    $.ajax({
        url: "scripts/s_editPlan.php", // Change this to your PHP update script!
        type: 'POST',
        dataType: 'json',
        data: data,
        success: function(ret){
          $(name).html(data(ansv));
          $(moment).html(data(moment));
          $(deadline).html(data(deadline));
          alert("Ändringen lyckades! '"+$.trim(deadlineTxt)+"' '"+$.trim(momentTxt)+"' '"+$.trim(nameTxt)+"' ");
            console.log(ret.response);
           },
        error: function(ret){
            console.log(ret.response);
            alert("Ändringen lyckades inte, inget!");
           }

    });

});

})

</script>

Это файл PHP:

<?php
include "dbh-script.php";
header('Content-type: application/json');


if (isset($_POST['ansv'], $_POST['moment'], $_POST['deadline'], $_POST['id'])) {
$dataid = $_POST['id'];
$ansv = $_POST['ansv'];
$moment = $_POST['moment'];
$deadline = $_POST['deadline'];

$sql = "UPDATE todoaction SET ansvarig='$ansv', moment='$moment', deadline='$deadline' WHERE id='$dataid'";
if ($conn->query($sql) === TRUE) {
    echo json_encode(print_r($_POST););
} else {
    echo json_encode( ["response"=>"Någonting gick fel. Error: " . $sql . "<br>" . $conn->error] );
}
}

if (isset($_POST['momentid'])) {
$id = $_POST['momentid'];
}

if (isset($_POST['deleteMoment'])) {
    $sql = "UPDATE todoaction SET status='4' WHERE id='$id'";
    if ($conn->query($sql) === TRUE) {
        header('Location: ../index.php?page=ärenden');
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
} 

elseif (isset($_POST['acceptMoment'])) {
    $sql = "UPDATE todoaction SET status='1' WHERE id='$id'";
    if ($conn->query($sql) === TRUE) {
        header('Location: ../index.php?page=ärenden');
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
} 

elseif (isset($_POST['helpMoment'])) {
    $sql = "UPDATE todoaction SET status='2' WHERE id='$id'";
    if ($conn->query($sql) === TRUE) {
        header('Location: ../index.php?page=ärenden');
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
} 

elseif (isset($_POST['checkMoment'])) {
    $sql = "UPDATE todoaction SET status='3' WHERE id='$id'";
    if ($conn->query($sql) === TRUE) {
        header('Location: ../index.php?page=ärenden');
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
} 

Я знаю, что там может быть много ошибок и странное кодирование, поскольку я пытаюсь учиться на практике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...