1

私はAJAXとjQueryを学んでおり、2つinputのフィールドを取り、データベースにデータを挿入する簡単なテストスクリプトをまとめようとしています。何が間違っているのか理解できませんが、以下のコードはデータを挿入しません。誰かが私の問題を見つけることができますか?

エラーは発生せず、コンソールに奇妙なものは何も表示されません。

HTML

<input id="name" type="text"/>
<input id="LastName" type="text"/>
<button id="testButton">Button</button>
<div id="callback"></div>

JS

$('#testButton').click(function () {
    var firstName = $("#name").val();
    var lastName = $("#LastName").val();

    $.ajax({
      type: "POST",
      url: "insert.php",
      data: { name: firstName, LastName: lastName }
    }).done(function( msg ) {
      alert( "Data Saved: " + msg );
});
});

PHP

    //Adding to the local database
    $name = array($_POST['name'], $_POST['LastName']);

    $qry = $dbh->prepare(
        'INSERT INTO info (FirstName, LastName) VALUES (?,?)');

    if ($qry->execute($name)) {
        echo "Success";
    }
4

3 に答える 3

1

すでに述べたように、入力には「名前」属性が必要です。したがって、HTMLは問題ありません。

PHPが正しく機能している場合は、JSを確認する必要があります。

このコードは実行されていないと思います。http://api.jquery.com/ready/JSコードを次のコード内にカプセル化してみてください。

$(function() {
    // Your code here
});

また、Google Chromeのインスペクターの[ネットワーク]タブと[コンソール]タブを使用して、ajaxリクエストで何が起こっているのかをよりよく理解することもできます。

「ネットワーク」には、HTTPリクエストとその応答(存在する場合)が表示されます。また、いくつか挿入してみてください

console.log('message')

JSで、デバッグ用のコンソールを確認してください。

于 2012-06-30T01:58:55.443 に答える
1

successajax呼び出しで関数を使用してみてください。

$('#testButton').click(function () {
    var firstName = $("#name").val();
    var lastName = $("#LastName").val();

    $.ajax({
      type: "POST",
      url: "insert.php",
      data: { name: firstName, LastName: lastName }
      success: function(data) {
        alert("sucess" + data);
      }
    });
});

また、ボタンが要素内にある場合は、ボタンをクリックした後もボタンが送信を実行している可能性がありますform。これを回避するために、トリガーする関数の最後に「returnfalse」を追加してください。

于 2012-06-30T02:37:31.310 に答える
1

JSコードは正常に機能していますが、jsfiddleエコーサービスを使用しています。

$('#testButton').click(function () {
    var firstName = $("#name").val();
    var lastName = $("#LastName").val();

    $.ajax({
      type: "POST",
      url: "/echo/html/",
      data: { name: firstName, LastName: lastName }
    }).done(function( msg ) {
      alert( "Data Saved: " + msg );
});
});​

ここにリンクがあります:http://jsfiddle.net/TPu8X/ 別のバージョン:http://jsfiddle.net/TPu8X/1/

コードはそれ以降でのみ機能し jquery 1.5.2ます(古いバージョンを使用している可能性があります)

正しいパスがないようですので、insert.phpphpを正しいパスに配置してみてください。

于 2012-06-30T09:46:51.663 に答える