2009-07-03 7 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のタブ付きのインターフェースに生成されるのは、それが何らかの理由で – elhombre

答えて

2

はFirefoxを持って、放火犯がインストールされていますか? もしそうなら、ネットタブを見て、ポストリクエストがplace_list.phpになっているかどうか、またレスポンスが何であるかを調べることができます。私はパスが多分不正確かもしれないと思う。 .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

あなたは右のFirefoxとFirebugのは、私は再び上記を試し、コンマを逃し、IE6は素晴らしい – elhombre

+1

を404'ingている疑いがあります内容で2番目の Firebugは、サイトがリンクしているページがkorrektではない、または最新のものではないと言います。 – redsquare