2014-11-09 2 views
-1

여기에서 검색 기능을 통해 도움을 얻으려고했지만 비슷한 문제에 대한 모든 대답은 이해하기에 너무 정교했습니다. 예를 들어 너무 복잡해서 내 문제와 관련 될 수있는 부분을 추출 할 수 없다. (jquery/ajax를 통해 PHP로 값을 제출하고 db에 삽입

나는 ajax 요청을 통해 datatable의 특정 행에 userinput을 PHP 파일로 보내는 html 형식을 사용한다. 사용자가 입력 한 textinput을 보내고 특정 행이나 사용자의 네트워크 계정과 같은 추가 정보를 전송해도 문제가 없습니다. 그러나 지금은 확인란을 추가하려고합니다. 사용자는 댓글이 비공개 또는 공개인지 여부를 선택할 수 있습니다. 그러나 일부는 확인란에서 값을 전송할 수 없다면 오류가없고 db에 삽입 된 checkboxdata도 없습니다. 텍스트 상자와는 다른 체크 박스를 처리해야합니까? 나는 도움에 매우 감사 할 것입니다! HTML : :

 function insertTextarea() { 

         var boardInfo = $("<form id='boardComment'><textarea rows='2' cols='30'>Notizen? Fragen? Kommentare?</textarea>Privat:<input type='checkbox' name='privatcheckbox' value='private'><input type='submit' value='Submit'><input type='reset' value='Cancel'></form>"); 

         $(this).parent().append(boardInfo); 
         $("tbody img").hide(); 

         $("#boardComment").on("submit", function(event) { 
          event.preventDefault(); 
          var change_id = {}; 
          change_id['id'] = $(this).parent().attr("id"); 
          change_id['comment'] = $(this).find("textarea").val(); 
          change_id['privatecheckbox'] = $(this).find("checkbox").val(); 

          if($(this).find("textarea").val()) { 
           $.ajax({ 
            type: "POST", 
            url: "boardinfo.php", 
            cache: false, 
            data: change_id, 
            success: function(response2) { 
             alert("Your comment has been saved!"); 
             $("tbody img").show(); 
             $("#" + change_id['id']).find("form").remove(); 
            } 
           }); 
          }; 
         }); 

을하고 이것은 PHP의 일부입니다 다음과 같이

내 코드 보인다

$id = mysql_real_escape_string($_POST['id']); 
$comment = mysql_real_escape_string($_POST['comment']); 
$privatecheckbox = mysql_real_escape_string($_POST['privatecheckbox']); 
$sql="INSERT INTO cerberus_board_info (BOARD_INFO_COMMENTS, BOARD_INFO_USER, BOARD_INFO_CHANGE_ID, BOARD_INFO_ENTRY_CHANNEL, BOARD_INFO_PRIVACY_LEVEL) VALUES ('$comment', '$ldapdata', '$id', 'Portal', '$privatecheckbox')"; 
+0

아니, 전혀! 모든 것은 작동하지만 체크 박스 값만 열에 입력되지 않습니다. – sardine

답변

0

다음 줄 : a 요소에 대한

change_id['privatecheckbox'] = $(this).find("checkbox").val(); 

검색 태그 이름 checkbox. 이러한 요소가 존재하지 않습니다. 유형의 <input> 요소를 검색하려고합니다.

당신을 위해 다음과 같은 작업을해야합니다 : 더 나은

change_id['privatecheckbox'] = $(this).find("input[type=checkbox]").val(); 

또는을의 :checkbox 의사 선택 : 마지막 주에

change_id['privatecheckbox'] = $(this).find(":checkbox").val(); 

: Why shouldn't I use mysql_* functions in PHP?

+0

정말 고마워요! 이것은 매우 그럴듯하게 보입니다. 그러나 나는 그 동안 내 자신의 편집을 시도했는데 다른 문제가 생겼다. 이전에는하지 않았던 체크 박스에 상관없이 항상 기본값을 삽입했다. 또한 어떻게했는지 복제 할 수 없으므로 Ctrl + z를 눌러야 만 작동하는지 알 수 있습니다./ 하지만 어쨌든 고맙습니다. – sardine

+0

문제를 재현 할 수 있다면 다른 질문을 해보니 기꺼이 도움이되었습니다. – George

+0

편집 : 나는 위의 코드의 요점을 복원하고 여전히 작동하지 않습니다. 체크 상자 값과는 별도로 모든 것을 삽입합니다.이 값은 빈 상태로 유지됩니다. – sardine

관련 문제