2009-07-03 108 views
1

我遇到了以下脚本的问题。它会生成一个可编辑,可删除的地点列表,甚至可以创建一个新地点。

我想创建一个新的地方,一个PHP文件,这使得一个进入数据库(MySQL的)时发送$。员额请求,然后列出了本entryes在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-文件

<?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 2009-07-03 07:32:23

+0

是的,尝试一下,工作正常。 列表得到生成到jQuery UI的选项卡接口,如果不知何故帮助你 – elhombre 2009-07-03 07:50:31

回答

2

您是否安装了Firefox和萤火虫? 如果是这样,你可以查看网络标签,并看看post_post请求是否对place_list.php进行了处理,以及响应是什么。我怀疑它是404',因为这条路可能不正确。您始终可以使用.ajax方法而不是.post。这使您可以指定一个错误方法,该方法在发生失败的ajax请求时被调用。

e.g

$.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); 
    } 
});