0

SOAPサービスからデータを読み取るように機能するコード行を作成しました。しかし、私には少し問題があります。このタスクでJSONPLibを使用していますが、結果が得られていません。データベースクエリの出力を読み取るために、より少ないコードで同じことを試みましたが、結果は成功しました。これら2つの方法に違いはありますか?配列をjsonの形式に転送するためにPHPコードを作成した最初のもの:

<?php
error_reporting(0);
header('content-type:application/json;charset=UTF-8');
date_default_timezone_set("Asia/Jakarta");
require_once('lib/nusoap.php');

$Param1 = "bertho_joris@yahoo.co.id";
$Param2 = "12345";

$client = new nusoap_client('http://vcare.telkomvision.net.id/services/VcareServices.php');
$ReadSOAP = $client->call('validateLogin', array('EMAIL' => $Param1, 'PASSWORD' => md5($Param2)));

echo '{"items":['. json_encode($ReadSOAP) .']}';
?>

そして、上記のコードによって生成されたデータは次のとおりです。

{
"items": [
    {
        "NE": "42616324457",
        "EMAIL": "bertho_joris@yahoo.co.id",
        "TIPE": "POSTPAID",
        "NAMA": "ALBERTHO MALAQUENA JORIS/NPK:120488047",
        "TELP": "081310117966 / 087878837451",
        "DN": "127225148174",
        "STATUS_LOGIN": "1",
        "DESC_LOGIN": "Valid"
      }
   ]
}

以下のライブラリを使用して、後でアプリケーションで読み取る出力データを処理します: JSONPライブラリ

JSONP.get( 'MyURL.php', {Email:'MyEmail', Password:'MyPass'}, function(data){
    for ( var i = 0; i < response.length; ++i ) {
          str = response[i].ne;
          str2 = response[i].email;
          str3 = response[i].tipe;
          str4 = response[i].nama;
          str5 = response[i].telp;
          str6 = response[i].dn;
          str7 = response[i].desc_login;
    }
});

しかし、私が得た結果は次のとおりです。私のアプリケーションは、上記のSOAPから直接出力されたデータを読み取ることができません。私はなぜそのようになるのか混乱しています。そして、JSON形式は正しいと思います。

次に、データベースから直接データを読み取ろうとしました。このデータベースはサンプルであり、上記のSOAP読み取りプロセスの出力で誤って同じデータを作成しました。

その結果、データを正常に取得できました。

私は読書をするために使用する2つのリンクを含めます。

  1. このリンクは、サーバーから直接SOAPを処理するphpファイルであり、出力はJSONです: 読み取りに失敗しました

  2. これは、ダミーデータベースを使用したデータベースへの直接リンクです。JSON出力。そして、私はこの2番目の方法を使用して成功します: 読書への成功

私の問題を解決するのを手伝ってください。JSONを出力するSO​​APフォームを使用してプロセスから直接データを読み取りたいポイント。私が失敗として説明したように。

ありがとうございました

4

1 に答える 1

0

これを試して:

JSONP.get( 'MyURL.php', {Email:'MyEmail', Password:'MyPass'}, function(data){
    for (var i = 0; i < response.length; i++) 
    {
        str  = response[i].NE;
        str2 = response[i].EMAIL;
        str3 = response[i].TIPE;
        str4 = response[i].NAMA;
        str5 = response[i].TELP;
        str6 = response[i].DN;
        str7 = response[i].DESC_LOGIN;
    }
 });
于 2012-11-21T19:17:20.370 に答える