2012-07-05 2 views
0

MVC 모델을 사용하여 JQuery, AJAX/JSON 및 PHP를 사용하여 HTML 코드에서 데이터베이스에 데이터를 추가하려고합니다. 아래는 제가 성취하고자하는 것을 보여주는 작은 샘플입니다.JQuery에서 Javascript/AJAX/JSON/PHP를 통해 데이터를 전달합니다.

내 프런트 엔드에는 다른 옵션과 '추가'라는 버튼이있는 확인란이 있습니다. 여기에서 선택한 요소는 Javascript 함수에 의해 선택됩니다.이 함수는 일단 테스트가 완료되면 AJAX/JSON을 수행하는 다른 Javascript 함수를 호출합니다. 내가 아직도 신선한 것은 PHP로 데이터를 보내는 실제 AJAX/JSON 프로세스이다.

내 자바 스크립트 기능 :

function add_fruits(fruit_name, fruit_type){ 
    var success = "Fruit added"; 
    var error = "Fruit not added"; 

    var params = { 
     'fruit_name' : fruit_name, 
     'fruit_type' : fruit_type 
    }; 

    $.ajax({ 
     type: "POST", 
     url: "add_fruits.php", 
     async: false, 
     data: params, 
       success: function(success){ 
        alert(success); 
       }, 
       error: function(error){ 
        alert(error); 
       } 
    }); 
} 

내 PHP 함수 :

<?php 
header("Access-Control-Allow-Origin: *"); 
header('Content-type: application/json'); 

require_once 'lib/connection_files.php'; 


if($_SERVER['REQUEST_METHOD'] =='POST') 
{ 
    $fruit_name = no_sql_injection($_POST['fruit_name']); 
    $fruit_type = no_sql_injection($_POST['fruit_type']); 

    $fruits = new fruits(); 
    $result = $fruits->add_fruits($fruit_name, $fruit_type); 
    $tmp = mysql_num_rows($result); 

    if($result == 1) 
    {//RESULT must return 1 to verify successful insertion to database 
     //send confirmation to front end 
    } 
    else 
    { 
     //send error message to front end 
    } 
} 
else{ 
    //tell front end there was error sending data via AJAX 
} 
?> 

참고가 add_fruits() 함수는 데이터베이스에 쿼리를 수행을 담당, 내가 여기 때문에 포함되지 않았다 내 문제와 관련이 없다.

+0

하지만, 그것은 디버깅을 시작하는 좋은 장소 인 것 같습니다. 보내기 전에 데이터를 문자열로 변환 해보십시오. 그런 다음 PHP에서 텍스트를 구문 분석하여 압축을 해제해야합니다. – TheZ

답변

2

그냥 PHP에서 echo을 수행

PHP :

.... 
else{ 
    //send error message to front end 
    echo "Error Adding Fruits"; 
    } 
..... 

JS : 나는 당신이, 내가 잘못 될 수있는 문자열을 보낼 필요가 있다고 생각

.... 
success: function(data){ 
    if(data == "1"){ 
     //data added to db 
    } 
    else{ 
     alert(data); 
     } 
    }, 
    ..... 
관련 문제