2009-07-03 6 views
1

다음 스크립트에 문제가 있습니다. 그것은 편집 가능하거나 삭제 가능한 장소의 목록을 생성하거나 새로운 장소를 만들 수도 있습니다.

데이터베이스 (MySQL)에 항목을 만들고 html로이 항목을 나열하는 PHP 파일의 새 위치를 만들 때 $. post 요청을 보내려합니다. 이제 $. 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 파일은

<?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>"; 
?> 
+0

브라우저에서 place_list.php 열려고 있나요? 접근 할 수 있습니까? – Boldewyn

+0

예, 사용해 보았습니다. 어쨌든 도움이된다면 jquery UI의 tabed 인터페이스에 목록이 생성됩니다. – elhombre

답변

2

당신은 파이어 폭스와 불을 지르고 설치있으세요? 그렇다면 net 탭을보고 post 요청이 place_list.php에 도착했는지 그리고 응답이 무엇인지 확인할 수 있습니다. 나는 아마 경로가 잘못되었을 때 그것이 404'ing라고 생각한다. .post 대신 항상 .ajax 메서드를 사용할 수 있습니다. 이를 통해 실패한 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); 
    } 
}); 
+0

죄송하지만 코드를 삽입 할 때 IE 6 충돌이 발생합니다. 오류를 찾으려고합니다. 어쩌면 코드에 오류가 어디에 있습니까? – elhombre

+0

당신은 오른쪽 파이어 폭스와 방화범이 끌린다고 의심합니다. – elhombre

+1

나는 쉼표를 놓치고 다시 위를 시도하고 ie6는 에러가 없어야합니다. – redsquare

관련 문제