[ChatGPT]我的第一個引用ChatGPT的程式

參考網址:
用VScode+EasyCod(ChatGPT)所產生的程式
運用到拖曳調整道次
問題1:用javascript ajax 讓籤號可以拖曳,並交換內容
問題2:可以加入ajax功能嗎?要更改資料庫內容

<!-- 20230408 by ChatGPT -->
<style>
.tags {
  display: flex;
  flex-wrap: wrap;
}

.tag {
  padding: 10px;
  margin: 10px;
  background-color: #ccc;
  cursor: move;
}
</style>
<div class="tags" id="container">
  <div class="tag" draggable="true" ondragstart="drag(event)" data-id="1">Tag 1</div>
  <div class="tag" draggable="true" ondragstart="drag(event)" data-id="2">Tag 2</div>
  <div class="tag" draggable="true" ondragstart="drag(event)" data-id="3">Tag 3</div>
  <div class="tag" draggable="true" ondragstart="drag(event)" data-id="4">Tag 4</div>
</div>
<script type="text/javascript">
var dragSrcEl = null;

function drag(e) {
  dragSrcEl = e.target;
  e.dataTransfer.effectAllowed = 'move';
  e.dataTransfer.setData('text/html', dragSrcEl.innerHTML);
}

function drop(e) {
  e.preventDefault();
  if (e.target.className == 'tag') {
    var temp = dragSrcEl.innerHTML;
    dragSrcEl.innerHTML = e.target.innerHTML;
    e.target.innerHTML = temp;

    // 更新資料庫內容
    var id1 = dragSrcEl.getAttribute('data-id');
    var id2 = e.target.getAttribute('data-id');
    console.log(id1);
    updateDatabase(id1, id2);
  }
}

function allowDrop(e) {
  e.preventDefault();
}

var container = document.getElementById('container');
container.addEventListener('drop', drop, false);
container.addEventListener('dragover', allowDrop, false);

function updateDatabase(id1, id2) {
  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'update.php', true);
  xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
      console.log(xhr.responseText);
    }
  };
  xhr.send('id1=' + id1 + '&id2=' + id2);
}
</script>

 

本篇發表於 程式設計。將永久鏈結加入書籤。