0

JavaScript

$.ajax({
    type : 'POST',
    url : 'post.php',           
    data: dataString,
    success:function (data) {
        if (data==null) { alert("darnit!!!!");}    
            //$("#response").append(data);
            alert(dataString);
        }          
    });     
});

PHPファイルでは単純です

print_r($_REQUEST);

また試した

echo "got iT!";

しかし、何も、さまざまなことを試してみましたが、最初はうまく いきませんでし//alert (dataString);たが、その後、success:function (data)アラートが表示されません-ページ内で応答がありません!

私は何を間違っていますか?

4

5 に答える 5

0

JQueryがデータの戻り値を無視するということは、通常、返される形式を理解していないか、何を期待すべきかわからないことを意味します。dataTypeを許容可能な形式に設定し、PHPスクリプトが実際にFirebugのコンソールのページに何かを送り返していることを再確認します。

$.ajax({
    type : 'POST',
    url : 'post.php',           
    data: dataString,
    dataType: 'text',
    success:function (data) {
        if (data==null) { alert("darnit!!!!");}    
            //$("#response").append(data);
            alert(dataString);
        }          
    });     
});
于 2012-05-17T21:21:37.720 に答える
0

最初に: ajax 関数から dataType プロパティを見逃しました。次に、json 型のデータを渡す必要があり、コードに構文エラーがありました。これを試してください:

$.ajax({
    type : 'POST',
    url : 'post.php',
    dataType: 'text',           
    data: {
        data_to_pass: dataString
    },
    success:function (data) {
        if (data==null) { 
            alert("darnit!!!!");
        } else {    
            //$("#response").append(data);
            alert(dataString);
        }          
    });     
});

PHPで:

$dataString = $_POST['data_to_pass'];
if($dataString) {
    echo "got IT!";
}
于 2012-05-17T21:24:04.473 に答える
0

スニペットに SyntaxError があります。それがあなたの実際のコードにもあるかどうかはわかりません。

json_encodePHP ファイルとjQuery.ajaxdataType: 'json'で必ず使用してください。また、常にコールバックも使用してください。何かが失敗した場合に、アプリケーションが無期限にフリーズするのは望ましくありません。error

このようなもの:

$.ajax({
    url: 'api.php',        
    data: {
        action: 'greet',
        foo: 'bar',
        baz: 'quux'
    }, 
    type: 'POST',  
    dataType: 'json',
}).then(function (response) {
    console.log(response); // DEBUG
    if (response.error) {
        alert('Greet Error: ' + response.error);
    } else {
        alert(response.greet);
    }
}).catch(function (jqXHR) {
    console.log('AJAX Error', jqXHR); // DEBUG
    alert('AJAX Error: Request failed');
});

PHP:

<?php
$input = $_POST;
$response = array();

if (!isset($input['action'])) {
    $response['error'] = 'Action parameter required';
} else {
    if ($input['action'] === 'greet') {
        if (!isset($input['foo']) || !isset($input['bar'])) {
            $response['error'] = 'Invalid greet request';
        } else {
            $response['greet'] = 'Welcome home, David!';
        }
    } else {
        $response['error'] = 'Unknown action';
    }
}

header('Content-Type: application/json; charset=utf8');
echo json_encode($response);
于 2012-05-17T21:33:45.080 に答える
0

以下を共有したいと思います。問題は解決したと思います。

私が間違いを犯したという事実に加えて、フォームから値を取得するのが少し間違っていました。最初のアラートで が表示されましたname=[Object name]が、これはばかげていました。

私の場合、結果が得られないという問題はjquery自体の問題のようでした。他の人が抱えている問題と同じかどうかはわかりません。jquery 1.7の同梱ファイルを1.4に差し替えました。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 

次のコードよりも ($.ajax からのみ)。

var dataString = $("#contactForm").serialize();
$.ajax({
    type: 'POST',
    url: './php/mail.php',
    data: dataString,
    success: function(msg){
        if (msg === 'sent'){
            $('#success').text('Message sent!');
        } else{
            $('#success').text('Mail Error. Please Try Again.!');   
        }
    }
});

今、私はそれを機能させています-そして、私のニーズに合わせて少し調整します!

すべての助けをありがとう!

于 2012-05-18T20:39:54.863 に答える
-1

これを試して:

$.ajax({
    type : 'POST',
    url : 'post.php',           
    data: dataString,
    success:function (data) {
        if (data===undefined) { alert("darnit!!!!");}    
            //$("#response").append(data);
            alert(data);
        }          
    });     
});

また、phpファイルの配列でjson_encodeを使用して、jsonオブジェクトを返すことも検討します。

于 2012-05-17T21:20:37.523 に答える