Frage

Ich habe ein Problem mit Skript folgen. Es erzeugt eine Liste von Orten, die bearbeitet werden kann, löschbar oder Sie können sogar einen neuen erstellen.

Ich möchte ein $ .post Anfrage senden, wenn eine neue Stelle zu einer PHP-Datei zu erstellen, die einen Eintrag in eine Datenbank (MySQL) macht und dann listet diese entryes in html. Nun, warum nicht einmal die $ .post eine Warnmeldung senden Sie mir NOTIFi, dass die Daten senden ist gewesen?

Das Skript nicht beendet ist doch, wie man sehen kann, aber es wäre schön, wenn Sie mir eine Hand geben könnten!

JS-Script

 $(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-Datei

<?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>";
?>
War es hilfreich?

Lösung

Haben Sie Firefox und Firebug installiert? Wenn ja, können Sie im Netz Registerkarte anzeigen und sehen, ob die Post-Anforderung auch an place_list.php und gemacht wird, was die Antwort ist. Ich vermute, es ist 404'ing als Pfad ist möglicherweise falsch. Sie können immer die .ajax Methode statt .post. Auf diese Weise können Sie einen Fehler Methode angeben, die bei einem fehlgeschlagenen Ajax-Request aufgerufen wird.

z

$.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);
  }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top