2012-04-11 2 views
-2

아약스에서 호출되는 삽입 쿼리에 문제가 있습니다. 아약스 호출은 성공으로 돌아 왔고 아래 코드에서 function()과 같이 변경된 html로 볼 수 있습니다. process.php의 삽입 쿼리가 작동하지 않는 이유가 확실하지 않습니다. dataString에는 올바른 인수가 있습니다 (dataString에 대한 경고에는 올바른 인수가 표시됨). 데이터베이스의 내 필드에는 null 값을 사용할 수 있습니다.PHP에서 삽입 쿼리가 아약스와 작동하지 않습니다

JS 코드

var dataString=$('#testimonials').serialize(); 

    alert (dataString); 

    $.ajax(
    { 
    type: "POST", 
    url: "process.php", 
    data: dataString, 
    success:function() { 
     $('#testimonials').html("<div id='message'></div>"); 
     $('#message').html("<h2>Your information has been submitted!</h2>") 
     .append("<p>Thank you for your help and support.</p>") 
     .hide() 
     .fadeIn(1500, function() 
     { 
     $('#message').append("<img id='checkmark' src='images/check.png' height='30' width='30'/>"); 
     }); 
    }); 

당신이, 당신 때문에에 PHP 변수를 넣어되지 만들고있는 문자열을 query_AddTestimonial을 $를 만들 끝에서 두 번째 줄에 process.php 파일

$company =mysql_escape_string($_POST('company')); 
    $jobfunc = mysql_escape_string($_POST('jobfunc')); 
    $location = mysql_escape_string($_POST('location')); 
    $overall = mysql_escape_string($_POST('overall')); 
    $detail = mysql_escape_string($_POST('detail')); 
    $pros = mysql_escape_string($_POST('pros')); 
    $cons = mysql_escape_string($_POST('cons')); 
    $sr_mgmt = mysql_escape_string($_POST('sr_mgmt')); 
    $submitted_by = mysql_escape_string($_POST('submitted_by')); 
    $class = mysql_escape_string($_POST('classof')); 
    $school = mysql_escape_string($_POST('school')); 
    $anonymous = mysql_escape_string($_POST('anonymous'));  

    mysql_select_db($database_connTest, $connTest); 

    $query_AddTestimonial = "INSERT into testimonials (company,job_function,location,overall,project_details,pros,cons,sr_mgmt,submitted_by,class,school,anonymous) VALUES ('$company','$jobfunc','$location','$overall','$detail','$pros','$cons','$sr_mgmt','$submitted_by','$class','$school','$anonymous')"; 
    $result_AddTestimonial = mysql_query($query_AddTestimonial) or die(mysql_error()); 
+0

데이터베이스에 삽입하려는 URL 인 'url : "process.php"에서 매개 변수를 전달해야합니다. – Lion

+0

나는 그가 dataString을 통해 그렇게하고 있다고 생각한다. –

+0

당신은 그것이 작동하지 않는다는 것을 무엇을 의미합니까? 당신은 어떤 에러 출력을 가지고 있습니까 ??? 또는 그것의 데이터베이스에 삽입하지 ?? – Baba

답변

0

그들이 변수라는 것을 말하지 않습니다. 다음과 같은 PHP 변수를 사용할 수 있습니다 :

$query_AddTestimonial = "INSERT into testimonials (company,job_function,location,overall,project_details,pros,cons,sr_mgmt,submitted_by,class,school,anonymous) VALUES ('{$company}','{$jobfunc}','{$location}','{$overall}','{$detail}','{$pros}','{$cons}','{$sr_mgmt}','{$submitted_by}','{$class}','{$school}','{$anonymous}')"; 
+0

마지막 줄의 두 번째 것 (process.php 파일에 있음). –

+0

Ben, 나는 당신이 정의한 방식대로 변수를 사용하려고 시도했지만 여전히 레코드가 mySQL에 삽입되지 않습니다. $ _POST가 process.php에 선언 된 변수에 값을 할당하는 것을 담당하지 않습니까? 예를 들어, $ company = $ _POST [ 'company']에서 $ _POST [ 'company']의 값이 할당 된이 경우 변수 인 $ company가 아닌가? 다른 제안? – amey1908

+0

방금 ​​SQL 쿼리에 정적 값을 넣음으로써 insert 문을 검사했고 삽입은 ajax 호출과 함께 작동합니다. 그래서 문제는 매개 변수를 전달하는 것입니다. 여러 가지 방법으로 매개 변수를 정의하려고했지만 작동하지 않습니다. 누구든지 어떤 제안이 있습니까? 지금까지 나는 $ .ajax 함수를 데이터로 정의하려고 시도했다. dataString과 data : {company : 'Yahoo', jobfunc : 'operations'.... 그리고 data : {company : company_name, jobfunc : jobfunction} company_name과 jobfunction에 값이 할당되어 있지만 불행히도 이러한 솔루션은 작동하지 않습니다. – amey1908

0

문제는 내가 변수를 호출하는 방식과 관련이 있습니다. $ _POST ('company') 대신 $ _POST [ 'company'] 여야합니다. 완전히 빠졌습니다 (배열 이후 $ _POST의 대괄호)

관련 문제