내가 만들고있는 WordPress 사이트의 버튼 클릭 (CSV)을 저장하는 파일을 제안하는 데 문제가 있습니다. 최소한 코드를 단순화했으며 여전히 작동하지 않습니다.다운로드를 제안하는 대신 PHP 리디렉션
내 템플릿 페이지 코드 :
<?php
/*
Template Name: My Awesome Custom Page
*/
get_header(); ?>
<html>
<form style= "text-align:center;" name="getcsv" action="test.php" method="post">
<select id="ddl">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select> <br/>
<input name= "export_excel" type="submit" value="Extraire"/>
</form>
</html>
<?php get_footer();
그리고 test.php 파일이 있습니다
<?php
if(isset($_POST["export_excel"]))
{
header('Content-type: application/xls');
header('Content-Disposition: attachment; filename="test.xls"');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
$headers = array('Type of Activity', "Number of Activities", "Hours of Instruction");
$row_1 = array($_POST['ddl'], $_POST['ddl'], $_POST['ddl']);
$output = implode(',',$headers);
$output.= "\n";
$output.= implode(',',$row_1);
$output.= "\n";
}
?>
나는 버튼을 클릭하면, 그것은 http://localhost/test/pagedetest에서 http://localhost/test/pagedetest/test.php에 저를 리디렉션 및 I 물론 얻을 그 페이지가 결코 생성되지 않았기 때문에 404.
이것은 단지 테스트 케이스이므로 좀 더 복잡하게 만들 수는 있지만이 방법도 효과가 없습니다.
나는 PHP로 단순한 에코에 대신 fputcsv 기능을 사용하여 시도 : // 출력과 형태 대신 아약스 호출을 사용하지만, 사람이있는 경우 그 나에게 아무 (아무 오류 또는 아무것도)을주지 않았다 왜 이것이 일어나고 있는지에 대한 아이디어, 미리 감사드립니다! 이 바보 같은 질문이지만 내 구글 - Fu는 아무것도를 설정하지 않았고 내가 오랫동안 워드 프레스 또는 PHP 중 하나와 함께 연주되지 않은 경우
건배 ...
죄송합니다!
답변 해 주셔서 감사합니다. 나는 당신의 해결책을 시도했지만 주사위는 사용하지 않았다. http : //localhost/test/pagedetest/test/test.php 나 http : //localhost/test.php를 리디렉션 중 하나입니다. 내가 이해하지 못하는 이유는 내 URL을 변경하려고하는 이유입니다. Ajax 호출을 수행하면 데이터를 처리하고 내가 원하는 것을 반환합니다. 그것은 왜 다르게 여기에서 그것을 할 것이냐? – GunslingerPanda
test.php의 위치는 어디입니까? 브라우저의 개발 도구에 따라 어떤 리디렉션이 발생합니까? – janh
당신이 말한 바에 따르면 올바른 길을 가다듬고 Wordpress는 분명히 get_template_uri 함수로 경로를 명시 적으로 지정해야합니다. 파일 이름에 추가하면 제대로 작동합니다. 감사합니다. – GunslingerPanda