1

以下のコードを使用すると、正しい場所を設定するのに問題があります。何らかの理由で、コールバック ファイルで php 定数が認識されないため、残りのコードが機能していません。

html からのスニペット:

<a href="#" class="selectLocation" id="ABC">

.js からのスニペット

var locationID;

    $(".selectLocation").click(function(){
    locationID = this.id;
    setLocation();
    });

function setLocation() {
    $.ajax({
        data: {location: locationID},
        success: function (data) {
        // do something
        };
    });
  };

// DEFAULT AJAX SETUP
$(function () {
    $.ajaxSetup({
        type: "POST",
        url: "dir/callback.php",
        dataType: "json",
        cache: "false",
        error: function (jqXHR, exception) {
            if (jqXHR.status === 0) {
                console.log('No connecting.\n Verify Network.');
            } else if (jqXHR.status == 400) {
                console.log('Bad Request. [400]');
            } else if (jqXHR.status == 404) {
                console.log('Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                console.log('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                console.log(jqXHR.responseText);
                console.log('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                console.log('Time out error.');
            } else if (exception === 'abort') {
                console.log('Ajax request aborted.');
            } else {
                console.log('Uncaught Error: ' + jqXHR.responseText);
            };
        }
    });

callback.php のスニペット:

    <?php
    header("content-type:application/json");
    session_start();
    require_once ('config.php');
...

    $connect->setLocation($_POST['location']);

$_POST['場所']; 以下で定義されている正しい値の代わりに、残りのコードに ABC を送信します。

config.php のスニペット:

define('ABC', 'some location');

私がする場合:

echo (ABC);

コールバック ファイルで、正しい場所の値を取得します。

4

2 に答える 2

1

$_POST['location']変数には、文字列「ABC」があります。

そうすれば、 ではなくecho($_POST['location']);が得られます。ABCsome location

これを試してください:

$connect->setLocation(constant($_POST['location']));

于 2013-01-10T02:05:49.617 に答える
0

a-elementのidプロパティを-constantに設定する場合は、次のABCようにする必要があります。

<a href="#" class="selectLocation" id="<?php echo ABC; ?>">

PHP定数は、HTMLではなくPHPコードでのみ解決されます。

それに加えて、DOM要素のIDでデータをエンコードすることは私にはやや複雑に思えます。HTML要素で何かをエンコードする必要がある場合、内部にいる場合は非表示spanのタグまたは要素を使用することを好みます。HTMLファイルを生成するPHPスクリプトに以下を追加することもできます。hiddenform

<script type="text/javascript">
    locationID = <?php echo ABC; ?>;
</script>

仮定locationIDはグローバルスコープにあります。init()または、 JSファイルにある種の関数を指定して、上記のようなスニペットを介して呼び出すこともできます。

于 2013-01-09T20:38:15.757 に答える