2016-04-14 7 views
0

私はAJAXのコンセプトを完全に新しくしていますが、私がするべきことを達成するためには必要であることを発見しました。基本的にはPHPの変数$を投稿する必要があります。は投稿が発生するたびにtrueになり、データベースにクエリが実行されます。何らかの理由で、このコードはわかりますが、「成功」アラートが表示されていてもコンソールエラーがなくても、それはajaxファイルに表示されているようには見えません。何かが目障りに間違っている?PHP + AJAXフォームが動作しない

<form action="call.php" method="post"> 
<input class="oomText" type="text" name="accountName" placeholder="Account Name"><br> 
<input class="oomButton submit" type="submit" name="submit" value="submit"> 

<script> 
$(document).ready(function(){ 
$('.oomButton.submit').click(function(){ 
    var clickBtnValue = $(this).val(); 
    var ajaxurl = '/ajax.php', 
    data = {'action': clickBtnValue}; 
    $.post(ajaxurl, data, function (response) { 
     alert("Account Created"); 
    }); 
}); 

}); 
</script> 
</form> 

AJAX.PHP

<?php 
if (isset($_POST['action'])) { 
switch ($_POST['action']) { 
    case 'submit': 
     submit(); 
     break; 
} 
} 

function submit() { 
$submitted = true; 
exit; 
} 

?> 
+0

? –

+0

閉じるスクリプトタグの下に閉じられています。 – codnor

+0

あなたはあなたのPHPファイルに何かをエコーし​​て、 "アカウントが作成されました"の代わりにあなたのスクリプトに警告することができます。スクリプトがそのファイルに当たるかどうかをテストします。 –

答えて

0

PHP変数を設定すると、PHPスクリプトが終了するとすぐに表示されなくなります。ただし、PHP $_SESSION変数を使用すると、変数はそのまま保持されます。

PHP $_SESSION変数を使用するには、session_start()をすべてのPHPスクリプトの先頭に追加してください。 session_start()は、の最初の命令でなければならないことに注意してください。他のPHPヘッダが送信された場合、session_start()は動作しません。したがって

、あなたの他のPHPファイルを持っても$_SESSION['submitted']変数をテストし、DBインサートを実行しても大丈夫であることを確認するために(再び、session_start()はトップアップが必要です)。

HTML/JS:

<form action="call.php" method="post"> 
    <input class="oomText" type="text" name="accountName" placeholder="Account Name"><br> 
    <input class="oomButton submit" type="submit" name="submit" value="submit"> 
</form> 

<script> 
    $(document).ready(function(){ 
     $('.oomButton.submit').click(function(){ 
      var clickBtnValue = $(this).val(); 
      var ajaxurl = 'http://clients.oomdo.com/provision/ajax.php', 
      data = {'action': clickBtnValue}; 
      $.post(ajaxurl, data, function (response) { 
       alert(response); 
      }); 
     }); 

    }); 
</script> 

AJAX.PHP

<?php 
    session_start(); 
    if (isset($_POST['action'])) { 
     switch ($_POST['action']) { 
      case 'submit': 
       submit(); 
       echo 'Hurrah'; 
     } 
    } 

    function submit() { 
     $_SESSION['submitted'] = true; 
    } 

?> 

ここではいくつかの有用なAJAX初心者情報とポストである - それが含む別のポストにリンク単純なAJAXの例それらを試してください。あなたが ``

要素を閉じてください

Prevent Page Load on Jquery Form Submit with None Display Button

+0

まあ...それはそれをした!私はすでにたくさんのセッション変数を使用しており、非セッション変数がそのようにリセットされるとは思わなかった。おいしい男! – codnor

0

このやってみてください、あなたが呼び出すために指している

キャッチは、フォーム送信とAjax経由でPOSTを行い、フォームのアクションを削除します.phpなので、フォームを送信すると、そのアクションはcall.phpに送られます。

<form id="form" method="post"> 
 
<input class="oomText" type="text" name="accountName" placeholder="Account Name"><br> 
 
<input class="oomButton submit" type="submit" name="submit" value="submit"> 
 

 
<script> 
 
$(document).ready(function(){ 
 
    
 
$('#form').on('submit', function(e){ 
 
    
 
    var clickBtnValue = $('.oomButton .submit').val(); 
 
    var ajaxurl = 'http://clients.oomdo.com/provision/ajax.php', 
 
    data = {'action': clickBtnValue}; 
 
    $.post(ajaxurl, data, function (response) { 
 
     alert("Account Created"); 
 
    }); 
 
}); 
 

 
}); 
 
</script> 
 
</form>

+0

お返事ありがとうございます!残念ながら、運はありません。私はできるだけ多くのエラーチェックをするように努力しています – codnor

0

以下のコードを使用してみてください。

フォームのすべてのフィールドに正しく入力して送信を押すと、jsアラートが表示されます。 PHPからjsには必ずしもAjaxが必要なわけではありません。私はどのようにPHPファイルに私のjsを入れていることに注意してください。私はフォーム呼び出しからすべてを実行します。

mail($toaddress, $subject, $message, $headers); 
$success=htmlspecialchars($_GET['to']); 
$success=ucwords($success); 
$valid= 'sent to' . ' ' . $success . ' ' . 'from a php server. Hit the back arrow' ; 
echo "<script type='text/javascript'>alert('$valid');</script>";