私は、Google マップ API からデータを読み取り、オブジェクトごとに XML に変換し、その XML を配列スロットに格納するプロジェクトに取り組んでいます (これは、すべてのデータが読み取られるまで複数回発生します)。 XML とブール値でいっぱいの配列を送信する PHP ファイルへの Ajax POST 要求 (サーバーにそれがどの要求であるかを知らせるため)。次に、PHP は SimpleXML を使用して読み込み、受信したデータで XML を編集し、保存します。
私の問題は、私が ajax リクエストを行うと、Firebug がリクエストを認識し、POST
すべての正しいデータを送信していることです。302
(エラー?) というメッセージがスローされ、(サーバーによって開始されたと思われる) 要求が発生しMoved Temporarily
、ブール値 (ajax と呼ばれる) が true かどうかを尋ねる行にエラーが出力されます。そして、XML ファイルを確認すると、すべてのデータが削除されています (ファイルはまだ存在しますが、XML はもうありません)。これが私の関連コードの一部です。GET
Undefined inded: ajax
あなたが提供できる助けを事前に感謝します。どんな支援も非常に役に立ちます!
また、何か明確にする必要がある場合は、お気軽にコメントしてください。
JavaScript
function sendData(result)
{
$.ajax(
{
type:'POST',
url:'getXML.php',
traditional: false,
data:
{
//Result is an array full of XML
'myXML': result,
//The ajax boolean is for letting the PHP know that it is this request
'ajax' : true
},
success: function(data)
{
$('#output').text(data);
}
})
}
PHP
<?php
//Set error reporting
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
error_reporting(E_ALL);
//Checks if the get request is from the AJAX call
if($_POST['ajax'])
{
//////////////////////////////Code for editing XML/////////////////////////////////////////
//Checks to see if the xml file exists.
if (file_exists('business.xml'))
{
//Loads the XML file
$xml = simplexml_load_file('business.xml');
$result = $_POST['myXML'];
//Append XML to existing file using data loaded in from AJAX request
appendXML($xml, $result);
}
else
{
//Loading XML has failed
exit('Failed to open business.xml.');
}
}
function appendXML($xml, $xmlResult)
{
foreach($xmlResult as $result)
{
//Creates new business node
$business = $xml ->addChild('business');
//Adds XML to business node (Please oh dear god let this work)
$business ->addChild($result);
file_put_contents("business.xml", $xml);
header('Location: getXML.php');
}
}
?>