2013-08-16 3 views
0

AJAX로 양식을 제출하고 싶습니다. 나는 버튼을 누르면 이것을 트리거 기능을 썼다 : 나는 done 경고를 받고 있어요 때문에jQuery의 POST가 "완료되었습니다."데이터가 전송되지 않습니다.

function putUser() { 
    $('button#putUser').on('click', function() { 
     var user = $('input#user').val(), 
      amount = $('input#amount').val(), 
      what = $('input#amount').val(), 
      country = $('input#country').val(), 
      platform = $('input#platform').val(), 
      formUrl = $('form#sendUser').attr('action'); 

     var data = { 
      user: user, 
      amount: amount, 
      what: what, 
      country: country, 
      platform: platform 
     } 

     $.post(formUrl, $('#sendUser').serialize(), function() { 
      alert('test'); 
     }).done(function() { alert('done')}) 

     return false; 
    }) 
} 

이 이론적으로 작동합니다. 그러나 데이터가 제출되지 않습니다. 뭐가 문제 야? 내 SQL 문을 잘 작동합니다.

내 PHP 코드 :

if(isset($_POST['putUser'])) { 
    $user = $_POST['user']; 
    $amount = $_POST['amount']; 
    $what = $_POST['what']; 
    $country = $_POST['country']; 
    $platform = $_POST['platform']; 

    $query = mysql_query('INSERT INTO sells (id, user, amount, what, country, platform) ' 
     . 'VALUES (NULL , "' . mysql_real_escape_string($user) . '", "' . mysql_real_escape_string($amount) . '", "' . mysql_real_escape_string($what) . '", "' . mysql_real_escape_string($contry) . '", "' . mysql_real_escape_string($platform) . '")'); 

    if($query) { 
     echo 'ok'; 
    } else { 
     die(mysql_error()); 
    } 
} 
+0

"데이터가 제출되지 않았습니다"* 어떻게 확인합니까? 서버 측 코드를 볼 수 있습니까? –

+0

새 SQL 테이블에 아무것도 나타납니다. –

+0

그렇다고해서 데이터가 제출되고 있지 않다는 의미는 아닙니다. 우리는 귀하의 SQL 쿼리가 실패하거나 귀하가 부정확하게 게시물 데이터에 액세스 할 수 있다는 것을 알고 있습니다. 귀하의 자바 스크립트가 정확합니다. –

답변

2

는 내가 가져 오기 PARAM에 putUser의 PARAM을 변경합니다.

<form action="sendUser.php?putUser"> 

PHP

if(isset($_POST['putUser'])) { 

JS

function putUser() { 
    $('#sendUser').on('submit', function() { 
     var formUrl = $(this).attr('action'); 

     $.post(formUrl, $(this).serialize(), function() { 
      alert('test'); 
     }).done(function() { alert('done')}) 

     return false; 
    }) 
} 

또한 나를 더 선택하기보다는 this를 사용할 수있는 클릭보다는 제출 이벤트로 변경되었습니다.

0

그것은 당신이 실제로 당신이 제출하려는 데이터를 전송하는 것처럼 보이지 않는다.

$('#sendUser').serialize()data 개체로 변경되었습니다. 그리고 putUserdata에 추가되어 서버 측 코드가이를 인식합니다.

$('#sendUser').serialize() 무엇
function putUser() { 
    $('button#putUser').on('click', function() { 
     var user = $('input#user').val(), 
      amount = $('input#amount').val(), 
      what = $('input#amount').val(), 
      country = $('input#country').val(), 
      platform = $('input#platform').val(), 
      formUrl = $('form#sendUser').attr('action'); 

     var data = { 
      putUser: true, 
      user: user, 
      amount: amount, 
      what: what, 
      country: country, 
      platform: platform 
     } 

     $.post(formUrl, data, function() { 
      alert('test'); 
     }).done(function() { alert('done')}) 

     return false; 
    }) 
} 
+0

작동하지 않습니다. 이전에'$. post (formUrl, data ...) '를 사용해 보았습니다. –

1

:

난 당신이 원하는 생각하십니까? 당신이 만든 양식이 data입니까?

편집는 : 게시물에 대한 dataType와 'JSON'을 시도 - http://api.jquery.com/jQuery.post/

+0

양식의 직렬화 된 내용. –

+0

작성한 데이터 객체를 사용하여 게시 할 수 있습니다. –

+0

다른 답변도 읽어보십시오. –

관련 문제