2014-09-06 1 views
0

내 웹 사이트에 양식을 작성하여 JavaScript에 값을 전달한 다음이 정보를 PHP 페이지에 전달하여 데이터베이스를 업데이트합니다. 양식이 제출되면 텍스트 영역 인 두 개의 필드를 제외하고 모든 값이 데이터베이스에 추가됩니다.텍스트 영역 양식 필드 값을 JavaScript로 전달하지 않습니다.

JavaScript를 제거하고 간단한 양식 작업을 추가하여 변수를 PHP 페이지에 직접 전달하면 모든 정보가 두 텍스트 영역 필드를 포함하여 데이터베이스에 추가되므로 문제가 양식에 있어야합니다. 그리고 자바 스크립트, 그렇지 않으면 두 개의 필드는 데이터베이스에 추가되지 않을 것입니다.

아래는 내 양식과 자바 스크립트입니다. (가 긴 형태로이 잘못된 접근 방식은 다음 알려 주시기 바랍니다 경우 최고, 간단 나는 단지 문제가있는 형태의 두 가지 요소를 포함 시켰 유지한다.) 지금

<form action="" method="post" class="save"> 
     <label class="col-sm-3 control-label">Notes</label> 
     <textarea name="notes" rows="10" class="form-control"></textarea> 
     <input type="submit" name="submit" class="save" value="Save This Job" id="blue"/> 
    </form> 

그리고 자바 스크립트를 내가 모든 정보는 MySQL 데이터베이스, 어떤 문제에 추가됩니다 PHP 페이지에 직접 변수를 보내는 경우 위에서 말했듯이 그래서 여기

$(document).ready(function(){ 
    $('form.save').submit(function() { 
    var ref_number = $(this).find("[name='ref_number']").val(); 
    var job_title = $(this).find("[name='job_title']").val(); 
    var start_date = $(this).find("[name='start_date']").val(); 
    var closing_date = $(this).find("[name='closing_date']").val(); 
    var category = $(this).find("[name='category']").val(); 
    var location = $(this).find("[name='location']").val(); 
    var salary = $(this).find("[name='salary']").val(); 
    var client = $(this).find("[name='client']").val(); 
    var job_description = $(this).find("[name='job_description']").val(); 
    var license = $(this).find("[name='license']").val(); 
    var notes = $(this).find("[name='notes']").val(); 
     // ... 
     $.ajax({ 
     type: "POST", 
     url: "save.php", 
     data: { 
       ref_number : ref_number, 
       job_title : job_title, 
       start_date : start_date, 
       closing_date : closing_date, 
       category : category, 
       location : location, 
       salary : salary, 
       client : client, 
       job_description : job_description, 
       license : license, 
       notes : notes, 

        }, 
        success: function(){ 
        new PNotify({ 
        title: 'Job Posted', 
        text: ' 
        type: 'success', 
        shadow: true 
       }); 


        } 
         }); 
        this.reset(); 
        return false; 
         }); 
        }); 

가, 내가 계속 변경은 PHP의 단순화 된 버전이지만, JavaScript를 사용하면 작업 설명 및 메모 필드가 추가되지 않습니다.

 $ref_number = $_POST['ref_number']; 
     $job_title = $_POST['job_title']; 
     $start_date = $_POST['start_date']; 
     $closing_date = $_POST['closing_date']; 
     $category = $_POST['category']; 
     $location = $_POST['location']; 
     $salary = $_POST['salary']; 
     $client = $_POST['client']; 
     $job_description = $_POST['job_description']; 
     $license = $_POST['license']; 
     $posted_by = $_POST['posted_by']; 
     $site_id = $_POST['site_id']; 
     $notes = $_POST['notes']; 

     mysql_query("INSERT INTO joborders 
     (ref_number, job_title, start_date, closing_date, category, location, salary, client_name, job_description, license_required, site_id, posted_by, status, notes, posted_date) VALUES('$ref_number', '$job_title', '$start_date', '$closing_date', '$category', '$location', '$salary', '$client', '$job_description', '$license', '$site_id', '$posted_by', 'open', '$notes', NOW()) ") 
     or die(mysql_error()); 

그래서 나는 페이지 하단에 내가 수십 번 봤다에도 불구하고 전에 발견하지 않은 코드의이 조각이었다, 문제를 발견했다. 곧 내가 그것을 제거, 그것은 일했다, 그래서 지금은 그냥 그래서 난 여전히 tnymce를 사용할 수있는 기존 코드에에 통합 할 수 있는지 일할 필요가

tinymce.init({ 
    selector: "textarea" 
    }); 
+1

우선, 제출시 jquery serialize를 사용할 수 있으므로 모든 변수 및 데이터 객체를 다시 입력 할 필요가 없습니다. –

+1

PHP가 두 개의 마지막 값을 예상했는지 확인 했습니까? –

+2

방화 광/크롬 도구를보고 "메모"가 서버로 전송되었는지 확인 했습니까? 그렇다면 관련 PHP 코드도 포함시킬 수 있습니까? – Assimilater

답변

0

확인 문제가 밝혀졌다 있도록 페이지에이 코드 조각이 있었기 때문에

tinymce.init({ 

선택 : "텍스트 영역" });

그래서 나는 이것을 텍스트 형식의 클래스로 변경했습니다.

tinymce.init({ 
selector: "textarea.form-control", 

});

이제 모든 양식 필드가 데이터베이스에 게시됩니다.

많은 의견과 제안을 해주셔서 감사합니다.

관련 문제