2017-12-25 8 views
-4

ajax를 사용하여 양식 내용을 txt 파일에 어떻게 제출합니까?Simple ajax php submit form

<input id="form" placeholder="fill out this" type="text"> 
<button>Submit</button> 

아약스

<script> 

$('button').click(function(){ 
var food = $('#form').val(); 
$.ajax({ 
      url:'form.php', 
      type:'POST', 
      data: food, 


     }); 
}); 

</script> 

form.php

<?php 
    error_reporting(E_ALL); 
    $data = $_POST['food']; 
    $f = fopen('filehere.txt', 'w+'); 
    fwrite($f, $data); 
    fclose($f); 
?> 

txt 파일이 잘못된 유형의 빈

답변

0

AJAX 호출을오고 유지, 당신은 객체를 보낼 수 있습니다.

$.ajax({ 
    url:'test.php', 
    type:'POST', 
    data: {food: food} 
}); 
1

아약스 요청에 문제가 있습니다. 정확하게는 data 부분입니다. 두 가지 방법으로 목표를 달성 할 수 있습니다.

1. 편집 더 우아한 제 생각에는 사용

data: { 
    food: food 
} 

2. 코드를

그냥 대신

data: food, 

기존

HTML :

<form id="myForm"> 
    <input name="myInput" type="text"/> 
    <button name="submit" type="submit">Submit</button> 
</form> 

복잡하고 단순한 HTML 형식의 것은 없습니다.

$('#myForm > button').click(function(e) { 
    e.preventDefault(); //prevent default behaviour 
    var formData = $('#myForm').serialize() //serialize data from form 
    $.ajax({ 
     //everything as before 
     data: formData 
    }); 
}); 

은 여기 형태에서 데이터를 직렬화. 정상적인 형태로 보내는 것과 똑같이 작동합니다. 이제 PHP에서는 양식 이름을 사용하여 데이터 배열 $_POST 전역 배열을 얻습니다. 예를 들어

$input = $_POST['myInput']; 

귀하의 문제는 데이터의 이름을 '포기'하지 않았다이다. 방금 데이터를 보냈지 만 PHP는 이것을 이름으로 식별 할 수 없습니다.