0

index.php と ajax.php の 2 つの .php ファイルがあるとします。

これは index.php です:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<META http-equiv=Content-Type content="text/html; charset=utf-8">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Website title</title>
<link href="css.css" rel="stylesheet" type="text/css" />
<script type="text/javascript"  src="jquery.js"></script>

</head>
<body>


<script type="text/javascript">
    ajax_register = function(){
        $.ajax({
            type: "post",
            url: 'ajax.php',
            dataType: 'json',
            data: "act=register",
            success: function(data){
                //var json = $.parseJSON(data);
                //alert(json);
                alert(data.result);

            },
            error: function(e){
                alert("Error : " + e);
            }
        });
    };

</script>

<form name="myForm" id="myForm" method="post">
    Your name :
    <input type="text" name="name" id="name" /> 
    <a href="javascript:void(0)" onclick="ajax_register()">Register</a>
</form>

</body>
</html>

そして、これは ajax.php です:

<?php
$result = array("result"=>"Success");
echo json_encode($result);
exit;

しかし、常に「エラー」警告ダイアログが表示されます。

Firebug を見ると、応答データに json データだけでなく、すべての html 要素が含まれていることがわかります。

ajax.php を編集して、ヘッダーを「json」として送信してみてください。

<?php
header("Content-type: application/json");
    $result = array("result"=>"Success");
    echo json_encode($result);
exit;

しかし、うまくいきません。応答ヘッダーは常に次のとおりです。Content-Type:text/html;

アップデート

これは、ajax.php の応答です。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <META http-equiv=Content-Type content="text/html; charset=utf-8">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Website title</title>
    <link href="css.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript"  src="jquery.js"></script>

    </head>
    <body>


    <script type="text/javascript">
        ajax_register = function(){
            $.ajax({
                type: "post",
                url: 'ajax.php',
                dataType: 'json',
                data: "act=register",
                success: function(data){
                    //var json = $.parseJSON(data);
                    //alert(json);
                    alert(data.result);

                },
                error: function(e){
                    alert("Error : " + e);
                }
            });
        };

    </script>

    <form name="myForm" id="myForm" method="post">
        Your name :
        <input type="text" name="name" id="name" /> 
        <a href="javascript:void(0)" onclick="ajax_register()">Register</a>
    </form>
{"result":"Success"}

ここで何が間違っていますか?

御時間ありがとうございます!

4

2 に答える 2

0

このLOC<script type="text/javascript" src="jquery.js"></script>をに変更しただけです

<script type="text/javascript"  src="http://code.jquery.com/jquery-latest.js"></script> 

私の最後であなたのコードとそのすべてがうまく機能していることを確認するために..チェックJSエラーはJSの競合のケースである可能性があります。(私にとって成功を認める)。問題が解決しない場合はお知らせください

index.phpコード-

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<META http-equiv=Content-Type content="text/html; charset=utf-8">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Website title</title>
<link href="css.css" rel="stylesheet" type="text/css" />
<script type="text/javascript"  src="http://code.jquery.com/jquery-latest.js"></script>

</head>
<body>


<script type="text/javascript">
    ajax_register = function(){
        $.ajax({
            type: "post",
            url: 'ajax.php',
            dataType: 'json',
            data: "act=register",
            success: function(data){
                //var json = $.parseJSON(data);
                //alert(json);
                alert(data.result);

            },
            error: function(e){
                alert("Error : " + e);
            }
        });
    };

</script>

<form name="myForm" id="myForm" method="post">
    Your name :
    <input type="text" name="name" id="name" /> 
    <a href="javascript:void(0)" onclick="ajax_register()">Register</a>
</form>

</body>
</html>

ajax.phpコード---

<?php
$result = array("result"=>"Success");
echo json_encode($result);
exit;

Successレジスターをクリックするとアラートが発生します。

于 2012-06-18T05:38:36.707 に答える
-1

この行を変更できると思います

 data: "act=register",

 data: " act : register ",
于 2012-06-18T05:41:20.607 に答える