2013-09-04 4 views
0

클라이언트에서 jquery Ajax를, 서버에서 PHP simple_XML을 통해 XML 파일을 업데이트하려고합니다.jquery ajax가 PHP simple_xml에서 작동하지 않습니다.

내 아약스 코드입니다 : 내가했습니다

$("input[type='radio']").click(function() { 
      $().progress(); 
      $.ajax({ 
       type: "POST", 
       url: "save.php", 
       data: {name: $(this).attr('name'), value: $(this).val(), id: 13618}, 
      }); 
    }); 

save.php에 :

$path=""; 
$xmlfile=$path.'vote/'.$_POST['id'].'.xml'; 
$xml = simplexml_load_file($xmlfile); 
$xml->'a'.$_POST['name']=$_POST['value']; 
$xml->asXML($path.'vote/'.$_POST['id'].'.xml'); 
return; 

vote/13618.xml는 각각 별도의 'A'로 시작하는 XML 태그의 템플릿이 포함되어 있습니다.

<posts> 
    <a1president/> 
    <a2vice-president/> 
</posts> 

을하지만, PHP 파일은 XML 파일을 업데이트되지 않습니다

예컨대 : this fiddle에 대한 , 내 xml 파일에서, 나는했습니다. 버그를 추적 할 수 없습니다.

내 코드에 오류가 있습니까? 그렇다면 어디서 어떻게 수정해야합니까?

답변

1

asXML을 (를) 발사했지만 값을 반환하지 않습니다. 그렇다면 함수가 false 또는 true을 반환하는지 확인할 수 있습니다.

false를 반환하면 추가 응답을 확인하십시오. 당신이 error reporting를 사용하도록 설정해야합니다 :

error_reporting(-1); 
+0

내 생각, 내 아약스 코드에서 오류가 (튜토리얼에서 잘 작동 동일한 코드를 본 적이)가있다. 나는받은 데이터 형식이 POST 또는 json과 같은 다른 것이 아닌지 의심 스럽다. '$ xml -> 'a'. $ _ POST [ 'name']'는 유효하거나 유효하지 않습니다. &'asXML'은 XML 파일을 출력합니다. 거기에 아약스에 대한 링크가 없습니다. – RatDon

+0

'save.php'의 일부만 게시했기 때문에 코드가 실행되는지 알 수 없습니다. 왜 확인하지 그래? 응답을 확인하십시오. 디버깅하지 않고 대답을 찾을 수 없습니다 (추측은 디버깅이 아닙니다 ;-)). Chrome 또는 Firefox를 사용하는 경우 콘솔을 사용하는 것이 매우 쉽기 때문에 사용하십시오. 반환 값 ('var_dump') 무슨 일이 일어나고 있는지. –

+0

'save.php'는 주로 많은 코드로 구성되며, 나머지는 post를 체크하기위한 것입니다. $ _SERVER [ 'HTTP_X_REQUESTED_WITH']'(Ajax 요청으로부터)입니다. 누군가가'save.php'를 직접 열면 보안뿐입니다. – RatDon

관련 문제