2016-09-11 7 views
0

私はAjaxを学ぼうとしています。私はいくつかのデータをPHPのHtml Formからmysqlデータベースに挿入しています。それはうまく動作します。しかし、私のAjaxの部分は動作しません。私は成功のメッセージを得るが、データは私のPHPファイルには行きません。私のHTMLとjsコード:Jquery ajaxとPHPを使ってmysqlデータベースにデータを挿入するには?

<!DOCTYPE html> 
<html> 
<head> 
    <title>Insertion of data with Ajax</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script> 
</head> 
<body> 
    <form id="myForm" method="POST" action="ajax-save.php"> 

    Title: <input type="text" name="title" id="title"><br /><br /> 
    Description: <textarea name="description" id="description" rows="20" cols="40"></textarea><br /><br /> 
    Url: <input type="text" name="url" id="url"><br /><br /> 

    <input type="submit" id="submit" name="submit" value="submit"> 

    </form> 

    <script> 

    $(document).ready(function(){ 

     $("#submit").click(function(){ 
     $.ajax({ 
      url: 'ajax-save.php', 
      async: true, 
      cache: false, 
      data: $('#myForm').serialize() , 
      type: 'POST', 
      success: function(){ 
      alert("success"); 
      clearForm(); 
      } 
     }); 
      return false; 
     }); 

    }); 

    </script> 

</body> 
</html> 

私のPHPコードは正しく動作しています。私はajaxなしでそれをテストしました。ここに私のPHPコードです。

$conn = mysql_connect('localhost', 'root', ''); 
    $db = mysql_select_db('hospital'); 

    if (isset($_POST['title'])) { $title = $_POST['title'];} 
    if (isset($_POST['description'])) { $description = $_POST['description'];} 
    if (isset($_POST['url'])) { $url = $_POST['url'];} 

    if(isset($_POST['submit'])){ 
     if(mysql_query("insert into `wp_upload_video` (`id`, `title`, `description`, `url`) values (NULL, '$title', '$description', '$url')")) 
      echo "Successfully Inserted"; 
     else 
      echo "Insertion Failed"; 
    } 

私の責任はどこにあるのか教えてください。

+1

「私のPHPコードが正しく機能しています」という記述はおそらく真実ではないようです。また、それが動作していないことをどのように知っていますか?どのように動作していないのですか? MYSQLエラーログ? PHPエラーログ? Javascriptコンソールエラー?その情報がなければ、言うことは不可能です。あなたのAjaxはうまく見えます。 – user1167442

+0

ブラウザの開発者ツールのネットワークとコンソールのタブを確認してください – j08691

+0

"submit"と "click"の間の優先順位を混乱させたので、あなたのコードをjsfiddleに貼り付け、 'error:alert(" failed ")'を追加しました。ついに何も現れなかった。 –

答えて

0

submitボタンをクリックしてajax経由で送信すると...その条件はです。常にがtrueです。

$_POST['submit']はそれがない真アヤックスが処理されることは決してありませんあるのであればPHP における意志常に結果に設定されているかどうかの確認。

PHPでは、if submit条件を削除し、ajax呼び出しでエラー通知を処理します。

コメントで@NiettheDarkAbsolが指摘しているように、e.preventDefault()をjqueryに追加すると、通常と同じようにフォームを送信する送信ボタンが停止し、jqueryが送信を処理できるようになります(ajax経由で)。

関連する問題