0

ajaxでデータベースを更新するのにほとんど問題はありませんが、動作させることができませんでした。私は何が間違っているのかわかりません。

ここに私のphpファイル(sendata.php)

  <?php
       if ( isset($_POST['register']) && $userid != 0) 
         {$register = $_POST['register'] ;

            $sql2 =$db->setQuery("INSERT INTO ....  ");
                   $db->query() ;
           }

   ?>

そしてここに私のjavascriptコード

$(document).ready(function() {
    $('#register').click(function() {

        $.ajax({

            url: "sendata.php",
            data: {
                age: $('#age').val()
            },
            type: 'POST',

            success: function(msg) {
                alert("Data has been saved succefully");
                $('#mydata').html("<b> age: </b>" + age);
            }
        });

        return false;
    });
});

登録ボタンをクリックするとアラートのみが表示され、データは正常に保存されますが、データベースにアクセスして表示すると、レコードがまったくありません。私は何か間違ったことをしていますか?

編集 :

この私のボタン

     <input type="submit" id="register" name="register" value="Save my Data" />
4

2 に答える 2

1

sendata.php は、'register' が設定されているかどうかをチェックします:if ( isset($_POST['register']) ...) したがって、リクエストで変数 'register' を設定する必要があります (コードを修正しました - 太字を参照):

$(document).ready(function() {
    $('#register').click(function() {

        $.ajax({

            url: "sendata.php",
            data: {
                age: $('#age').val(),
                register: "register"
            },
            type: 'POST',

            success: function(msg) {
                alert(msg);
                $('#mydata').html("<b> age: </b>" + age);
            }
        });

        return false;
    });
});

sendata.php

if ( isset($_POST['register']) && $userid != 0) 
{
     $register = $_POST['register'] ;
     $sql2 =$db->setQuery("INSERT INTO ....  ");
     $db->query() ;
     echo "SUCCESS";
     exit(0);
 } 
 echo "FAILURE";
于 2012-11-19T19:58:57.123 に答える
0

Javascript:

                    jQuery(document).ready(function($)
                    {
                    //prevent registering the event more than once 

                    //$('#register').off('click').on('click',(function(e) {

(1.) 私は以下から始めます:

                    $('form').off('submit').on('submit',(function(e) {

また ..

                        $('input[type="submit"]').off('click').on('click',(function(e) {

それから ..

                                $.ajax({
                                              //url to touch
                                            url: "sendata.php",
                                            data: {
                                                age: $('#age').val()
                                            },
                                            type: 'POST',
                                            //on fail
                                                        fail: function(data){
                                                         //regular javascript alert on error
                                                                    alert("Oppps! Data error");
                                                        },
                                            //on success
                                            success: function(data) {
                                                //regular javascript alert on success
                                                alert("Data has been saved succefully");

                                                //assuming this is a div with an id of mydata
                                                $('#mydata').html("<b> Age is: </b>" + data);
                                            }
                                        });

                                //prevents default action as we are not submiting the form but rather making use of AJAX to touch the php file
                                e.preventDefault();

                                });

                    });

sendata.php

                                <?
                $msg= '';

                    if (  isset( $_POST['age'] )  ) 
                    {
                        $age = filter_input(INPUT_POST, "age", FILTER_SANITIZE_STRING); 
                //echo $age;

                //around this check if the insertion is correct and that you can talk to the db
                //db handling, insertion, etc..
                                  // $sql2 =$db->setQuery("INSERT INTO ....  ");
                                  // $db->query();

                        //$msg .= "Epic Win! $age";
                        $msg .= "$age";
                    }
                    else $msg .= 'Error, no age provided :( ';
                        //we are returning the data so we need to echo it as an output here.
                    echo $msg;

                ?>
于 2012-11-21T00:40:16.983 に答える