0

送信ボタン name = "Add" をクリックすると、"addtobucketlist.php" という名前の php ファイルが呼び出され、その中で関数が実行されるような ajax 関数を作成しようとしています。

これは、「script.js」というファイルの ajax 関数で、動作していません。その理由はわかりません。(2 行目の hideshow('loading',1); が機能していることを確認しました。)

function Addtobucketlist(){
    hideshow('loading',1);     //line 2
    error(0);

$.ajax({
    type: "POST",
    url: "http://utourpia.me/php/addtobucketlist.php",      
    data: $('#addBucket').serialize(),
    dataType: "json",
    success: function(msg){

        if(parseInt(msg.status)==1)
        {
            //hide the form
            $('.form').fadeOut('slow');                 

            //show the success message
            $('.done').fadeIn('slow');
        }
        else if(parseInt(msg.status)==0)
        {
            error(1,msg.txt);
        }

        hideshow('loading',0);
    }
});

}

以下は私のheader.phpです

$(document).ready(function(){

        $('#addBucket').submit(function(e) {
            Addtobucketlist();
            e.preventDefault(); 
        }); 
    });

以下は私のフォームです。これは、ajax が実行されるとフォームが非表示になり、完了した div クラスが表示されるように記述されています。

echo '<div class=form>';
echo '<form id=addBucket action="http://utourpia.me/php/addtobucketlist.php" method=post>';
echo '<input type="submit" name="add" value="Add" /><img id=loading src="../../images/loading.gif" alt="working.." />';
echo '</form>';
echo '</div>';
echo '<div class="done"><p>Added successfully! <br /></p>';
echo '</div>';

以下は addtobucketlist.php です。

if (isset($_POST['Add'])) 
 {
    add_to_bucket_list($location_id, $username);
    die(msg(1,"<p>Added!</p>"));
}
else
{
var_dump($location_id);
var_dump($username);
}


function msg($status,$txt)
{
return '{"status":'.$status.',"txt":"'.$txt.'"}';
}

どんな助けでも大歓迎です!

4

2 に答える 2

0

成功した場合にのみ実行されるため、
アクションaction="http://utourpia.me/php/addtobucketlist.php

は必要ありません。msg.status$.ajax

于 2013-06-26T04:56:37.690 に答える
0

使ってみて

if (!empty($_POST['Add'])) 
{

issetの代わりに。追加

error: function( jqXHR, textStatus, errorThrown )

関数を ajax 呼び出しに追加して、スローされているエラーを確認します。

php _POST 変数 'Add' で大文字の 'A' を使用し、html フォームでは小文字の a を使用します。

PHP スクリプトから出力しているテキストは、適切な json として識別されない場合があります。代わりに、出力値の配列に対して php 関数 json_encode() を使用してください。

于 2013-06-26T03:51:45.560 に答える