次の問題があります: 私のローカル開発サーバー PHP 5.3.10 / Apache 2 では、すべてがうまくいきます。本番サーバーの PHP バージョン 5.2.13 / Apache 2 で同じコードを実行すると、コードは失敗しますが、特定の条件では必ずしもそうではありません。
詳細:
コンテキスト: 画面上に更新可能な dojox.data.grid テーブルがあります。変更されたデータは、JSON 文字列としてサーバーに正しく渡されます。このような :
data = {
"deletedItems":{}
,"newItems":{}
,"modifiedItems":{
"2890":{"idFacture":"2890"
,"idClient":"175"
,"idAffaire":"1323"
,"idContrat":"2234"
,"raisonSociale":"xxxxxx"
,"nomAffaire":"xxxxxx"
,"nrFacture":"xxxxx"
,"dateFacture":"2012-12-06"
,"montantFacture":"160000.00"
,"pourcentageFacture":"64.88"
,"pourcentageCalcule":"32.44"
,"noteFacture":""
,"dateTransfert":""
,"aTransferer":true
,"typeDocument":"Facture"
,"factureSoldee":false
,"montantTotalHeures":"0.00"
,"pourcentageTotalHeures":"0.00"
,"montantTotalMateriel":"0.00"
,"pourcentageTotalMateriel":"0.00"
,"montantTotalSousTraitance":"160000.00"
,"pourcentageTotalSousTraitance":"40.94"
}
,"2892":{"idFacture":"2892"
,"idClient":"50"
,"idAffaire":"1649"
,"idContrat":"2713"
,"raisonSociale":"xxxxx"
,"nomAffaire":"xxxxx"
,"nrFacture":"xxxxx"
,"dateFacture":"2012-12-07"
,"montantFacture":"12004.50"
,"pourcentageFacture":"0.00"
,"pourcentageCalcule":"41.94"
,"noteFacture":""
,"dateTransfert":""
,"aTransferer":true
,"typeDocument":"Facture"
,"factureSoldee":false
,"montantTotalHeures":"12004.50"
,"pourcentageTotalHeures":"41.95"
,"montantTotalMateriel":"0.00"
,"pourcentageTotalMateriel":"0.00"
,"montantTotalSousTraitance":"0.00"
,"pourcentageTotalSousTraitance":"0.00"
}
}
}
データには「deletedItems」(空)、「createdItems」(空)、「modifiedItems」の 3 つの要素が含まれていることがわかります。
PHPコードには、次のコマンドがあります:
$srvJson = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
$data = $srvJson->decode($data);
$data は上記のように入力されます。通常、最後のステートメントの後に、次の PHP 変数が設定されます。
- $data["deletedItems"]
- $data["createdItems"]
- $data["modifiedItems"]
問題は次のとおりです。実稼働サーバーでテーブルに多くの変更された行 (約 > 30) がある場合、変更されたデータはサーバーに正しく渡されますが、$data["modifiedItems"] が設定されていません。数行のデータセットを変更するだけの場合、 $data["modifiedItems"] は適切に設定されています。データセット全体をピースごとに変更できますが、データセット全体を一度に変更することはできません。
これはサーバー設定の問題だと思いますが、何ですか?
提案をいただければ幸いです。
よろしくお願いします、
ロジャー
PS : 私の英語で申し訳ありません