Alert와 함께 jQuery $ .post를 보내는 방법
문제
다음 스크립트에 문제가 있습니다. 편집 가능하고 삭제 가능하거나 새 장소를 만들 수있는 장소 목록을 생성합니다.
데이터베이스 (MySQL)에 입력 한 PHP 파일에 새 장소를 작성할 때 $ .post 요청을 보내고 싶습니다. 그런 다음이 항목을 HTML에 나열합니다. 이제 $ .post조차도 데이터가 전송되었음을 알리기 위해 경고 메시지를 보내지 않는 이유는 무엇입니까?
스크립트는 아직 완료되지 않았지만 나에게 손을 줄 수 있다면 좋을 것입니다!
JS 스크립트
$(function() {
$(".edit").click(function() {
$(this).css("display","none").prevAll(".place_name").css("display","none").prevAll(".inputfield_td").css("display","block").nextAll(".cancel").css("display","block").nextAll(".save").css("display","block").prevAll(".inputfield_td").css("display","block");
});
$(".cancel").click(function() {
$(this).css("display","none").prevAll(".edit").css("display","block").prevAll(".place_name").css("display","block").prevAll(".inputfield_td").css("display","none").nextAll(".save").css("display","none");
});
$(".save").click(function() {
var myvariable1 = $(this).siblings().find("input[type=text]").val();
var myvariable2 = $(this).prevAll("td:last").attr("id");
$(this).css("display","none").prevAll(".cancel").css("display","none").prevAll(".edit").css("display","block").prevAll(".place_name").css("display","block").prevAll(".inputfield_td").css("display","none");
alert("save name: "+myvariable1+" save id: "+myvariable2);
});
$(".delete").click(function() {
var myvariable3 = $(this).prevAll("td:last").attr("id");
alert(myvariable3);
});
$(".new").click(function() {
var myvariable4 = $(this).prevAll("input[type=text]").val();
$.post("place_list.php", {action: "create", name: myvariable4}, function(data){
alert("Data Loaded: " + data);
},"html");
alert(myvariable4);
});
});
php-file
<?php
require_once "../../includes/constants.php";
// Connect to the database as necessary
$dbh = mysql_connect(DB_SERVER,DB_USER,DB_PASSWORD)
or die ("Unaable to connnect to MySQL");
$selected = mysql_select_db(DB_NAME,$dbh)
or die("Could not select printerweb");
echo "<table><tbody>";
$result = mysql_query("SELECT * FROM place");
while ($row = mysql_fetch_array($result)) {
echo "<tr><td id=".$row["id"]." class=inputfield_td><input class=inputfield_place type=text value=".$row["name"]." /></td><td class=place_name>".$row["name"]."</td><td class=edit>edit</td><td class=cancel>cancel</td><td class=delete>delete</td><td class=save>SAVE</td></tr> \n";
}
echo "</tbody>";
echo "</table>";
echo "<input type=text class=inputfield_visible />";
echo "<button class=new>New</button>";
?>
해결책
Firefox와 Firebug가 설치 되었습니까? 그렇다면 그물 탭을보고 게시물 요청이 place_list.php로 만들어지고 응답이 무엇인지 확인할 수 있습니다. 나는 경로가 틀렸을 때 404'ing이라고 생각합니다. 언제든지 사용할 수 있습니다 .ajax .post가 아닌 방법. 이를 통해 실패한 AJAX 요청에 따라 호출되는 오류 메소드를 지정할 수 있습니다.
예를 들어
$.ajax({
url : "place_list.php",
data : {action: "create", name: myvariable4},
cache : false,
error : function(XMLHttpRequest, textStatus, errorThrown){
//console.log or alert error
alert(errorThrown);
},
success: function(html){
alert("Data Loaded: " + data);
}
});
제휴하지 않습니다 StackOverflow