스택 오버플로와 같은 태깅 시스템을 만들려고합니다. 그래서 모든 태그는 그 옆에 작은 x를 가지므로 사용자가 태그를 삭제하면 너무 동적으로 데이터베이스에서 삭제됩니다. 태그를 입력 한 사용자 만 삭제할 수 있습니다. 나는 X 용 앵커 태그를 사용하여 다음과 같이 요소를 삭제 할 PHP 스크립트에 Ajax를 사용하여 요청 보낸다 :Ajax와 앵커 태그를 사용하여 요소를 삭제하는 방법은 무엇입니까?
이<?php
require_once("database_connection_handler.php");
$x=$post->ID;
$i=0;
$select_query = "Select * from wp_tags inner join wp_posts_tags on wp_posts_tags.tag_id=wp_tags.id where wp_posts_tags.post_id='". $x . "'";
$result = mysql_query($select_query);
$num=mysql_num_rows($result);
echo "</ul>";
echoTagHTML();
while ($i < $num) {
$tag=mysql_result($result,$i,"tag");
$id=mysql_result($result,$i,"id");
echo "<li>";
tagLinks($tag,$id);
if(is_current_user())
{
echo "<a href='javascript:void(0)' onclick='deleteTag($id);'>  x</a>";
}
echo "</li>";
$i++;
}echo "</ul></div>";
?>
이 문제를 처리하는 Ajax 코드는 다음과 같습니다
function deleteTag(str){
if (str.length != 0){
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.open("GET","links/livesearch.php?del="+str,true);
xmlhttp.send();
}
else{return;}
}
을 PHP 스크립트는 다음과 같습니다 :
<?php
$del=$_GET["del"];
ConnectToDB();
$delete_query="delete from wp_tags where id='".$del."'";
if(!mysql_query($delete_query))
{
echo "error while deleting";
}
mysql_close($con);
?>
저는 Ajax를 처음 사용했습니다. 사용자를 삭제할 링크를 클릭하면 아무 것도 삭제하지 않습니다. 데이터베이스에서 태그를 제거하거나 페이지에서 링크를 제거하지 않습니다. 내가 뭘 놓치고 있니? 어떤 도움을 주시면 감사하겠습니다. 감사.
wp_tags에서 삭제해야 할 곳에 'tag =' ". $ del." ' ";' –
팁 :'echoTagHTML ($ name, $ id)'와 같은 간단한 함수를 만들면, getPostTags ($ id)'등등. 코드를 좀 더 읽기 쉽게 만들 수 있습니다. 오류를 찾고 확장하기가 더 쉽습니다. – hakre
실제로 wp_tags에서 삭제됩니다. 쿼리가 어떻게 이루어 졌는지 알지 못합니다. 내 실수. 나는 그것을 편집했다 – Maddy