2017-02-19 2 views
0

私はAJAXコードを書いてPHPファイルをリンクしましたが、コードは最後にreturn false;関数を受け入れていません。私はアクションファイルに連れて行っています。私のAjaxコードajaxコード、jquery return falseが機能しません。他の回答を試しました

$("#submit").click(function() { 

    var data = $("#form :input").serializeArray(); 

    $.post($("#form").attr("action"), data, function(info) { $("#result").html(info);}); 
}); 

$("#form").submit(function() { 

    return false; 
}); 

私のindex.phpコード

<?php 

include('new.php'); 


?> 


<!DOCTYPE html> 
<html> 
<head> 
    <title>Ajax practice</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script type="text/javascript" src="ajax.js"></script> 
</head> 
<body> 
    <form action="new.php" method="post" id="form"> 
     <label>Name</label><br> 
     <input type="text" name="name"/><br> 
     <label>Email</label><br> 
     <input type="Email" name="email"/><br> 
     <button type="submit" name="submit" id="submit">submit to database</button> 
    </form> 
    <span id="result"></span> 
</body> 
</html> 

私のPHPファイル

<?php 

$con = mysqli_connect("localhost","root","","ajax") or die ("couldnt connect to database."); 


if (isset($_POST['submit'])) { 


    global $con; 

    $title = $_POST['name']; 
    $email = $_POST['email']; 


    $insert_user = "INSERT INTO ajax (title, email) VALUES ('$title', '$email')"; 
    $run_user = mysqli_query($con,$insert_user); 


    if ($run_user) { 
     echo "Success"; 
    } else { 
     echo "Failed"; 
    } 
} 


?> 
+0

のためにこれを試してみてくださいますか? – mplungjan

答えて

1
  • NEVE R名はあなたのボタンは「提出」を提出 - それは置き換え/ブロックform.submitハンドラ
    変更
    ​​
    <button type="submit">submit to database</button>

    ハンドラとのJSが頭の中や、彼らがアクセスするオブジェクトの前にある場合

  • に、

  • :あなたはonloadイベントにハンドラをラップする必要があります - - ここで私は

    Canonicalの方法が提出したイベントとNOTクリックイベントを使用することです$(function() {....});

  • 使用し、それはまた、ハンドラを節約しますテストへ

http://plungjan.name/SO/testajax/testajax.html

$(function() { // when page loads 
    $("#form").on("submit",function(e) { 
    e.preventDefault(); // cancel submit 
    $.post($(this).attr("action"), $(this).serialize(), function(info) {  
     $("#result").html(info); 
    }); 
    }); 
}); 
+0

私はこれを試しました。それはまだ私を他のPHPファイルに連れて行っています。 – Himakar

+0

F12キーを押し、f12を試したエラー – mplungjan

+0

を見てください。エラーは表示されません。 – Himakar

0

あなたはクリックであるコードの最初の部分で提出のデフォルトの動作を阻止する必要があります機能

0

は、私はあなたがのpreventDefaultなければ

$('#submit').click(function() {}); 

を行うときにそのため、あなたの

#sumit is id for <input type="submit"> 

を考えるとやる

#('#form').submit(function() { 
    Return false; 
} //think this for your form 

コードに矛盾します。あなたがすることを伝え、それが

混乱していないではない、私はあなたに助言

$('#form').on("submit", function() { 
    $.ajax({//ajax code}); 

     Return false; 
    )}; 

はnew.php内部にあるどのようなあなたのコード

$('#submit').click(function() { 
    var data = $('#form').serialize(); 

    $.ajax({ 
    type: "POST", 
    url: "ajaxsubmit.php", 
    data: data, 
    cache: false, 
    success: function(result){ 
     alert(result); 
    } 
    )}; 
return false; 
}); 
+0

私はこれを疲れました。 ( "送信"、関数(E){ VARデータ= $( "#フォーム:入力" に $( "#フォーム"))serializeArray(); \t .post $($( "#。フォーム ")のattr(" アクション ")、データ、機能(情報){ \t $("。#結果」)HTML(情報); }); 戻り偽; }); 現在も動作しています。 – Himakar

+0

それはまだ私を他のPHPページに連れて行っています。 – Himakar

+0

あなたのスクリプトは外部ファイルですか?あなたは適切なjQueryのcdnまたはファイルが好きで、適切にリンクされていることを願っています。 –

関連する問題