2012-10-15 3 views
1

지금 당분간이 문제가 번식하고 있습니다. 답변을 찾을 수 없습니다.Twitter Bootstrap은 jquerys를 통해 양식을 제출합니다. submit()은 페이지를 새로 고칩니다.

트위터 부트 스트랩과 PHP/MySQL로 응용 프로그램을 개발하고 있습니다. jquery가 모달을 확인하도록하는 간단한 양식이 있습니다. 확인을 클릭하면 양식을 게시해야합니다. 아무것도 일어나지 않아야한다.

이제 폼과 jquery를 최소한으로 단순화했습니다. 아직 작동하지 않습니다.

<div class="container-fluid"> 
    <div class="row-fluid"> 
     <form method="post" action="" data-confirm="Are you sure you want to delete?"> 
      <div class="span6"> 
       <div class="control-group"> 
        <label class="control-label" for="inputIcon">Add New Network</label> 
         <div class="controls"> 
         <div class="input-prepend"> 
          <span class="add-on"><i class="icon-tag"></i></span> 
          <input class="input-xlarge span6" id="inputIcon" type="text" placeholder="Network Name" name="network"> 
         </div> 
        </div> 
       </div> 
       <div class="control-group"> 
        <label class="control-label" for="inputIcon">Network Timezone</label> 
         <div class="controls"> 
         <div class="input-prepend"> 
          <span class="add-on"><i class="icon-globe"></i></span> 
          <?php echo $this->timezones; ?> 
         </div> 
        </div> 
       </div> 
       <div class="form-actions"> 
        <button type="submit" name="save_network" class="btn btn-primary"><i class="icon-ok icon-white"></i> Save Network</button> 
       </div>  
      </div> 

이것은 내가 사용 JQuery와 같습니다 :

내가 지금 가지고있는 형태입니다

/* confirmation dialogs */ 
$(document).ready(function() { 
    $('form[data-confirm]').submit(function() { 
     var form = this; 
     if (!$('#dataConfirmModal').length) { 
      $('body').append('<div id="dataConfirmModal" class="modal" role="dialog" aria-labelledby="dataConfirmLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="dataConfirmLabel">Please Confirm</h3></div><div class="modal-body"></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><a class="btn btn-primary" id="dataConfirmOK">OK</a></div></div>'); 
     } 
     $('#dataConfirmModal').find('.modal-body').text($(this).attr('data-confirm')); 
     $('#dataConfirmModal').modal({ 
      show: true 
     }); 
     $('a#dataConfirmOK').click(function() { 
      $("form").submit(); 
     }); 
     return false; 
    }); 
}); 

그리고 이것은 내 컨트롤러의 기능이다 모델을 호출합니다.

<?php 

    // if settings form was submitted, save settings data 
    if(isset($_POST['save_network'])) 
    { 
     $this->model->insert_network('reports', $_POST); 
    } 

?> 

나는 아약스를 원하지 않는다. 간단한 폼을 제출하면, 이상한 일은 내가 폼을 수동으로 제출할 때 완벽하게 작동한다는 것이다. 양식의 데이터는 데이터베이스에 저장되지만 jquery .submit(); 양식은 제출되지만 아무것도 저장되지 않습니다.

도움을 주시면 감사하겠습니다. 폼이 버튼의 이름 값이 설정되어 있는지 확인하여 제출 한 경우 내 컨트롤러

답변

1

I 확인 :

if(isset($_POST['save_network'])) 
{ 
$this->model->insert_network('reports', $_POST); 
} 

을하고 JQUERY 가진 양식을 제출하면 버튼이 클릭되지 않는다; HENCE : 아무런 버튼 이름도 설정되지 않았습니다 ... UGH

비명을 불러서 죄송합니다. : D 그러나 이것이 실제로 문제가된다는 것을 발견하기 전에 나는 6 시간 동안 바쁘게 지 냈습니다. 잊다!

잘하면 이것은 다른 사람에게 도움이됩니다. jquery로 양식을 제출하고 단추 이름을보고 php로 양식이 제출되었는지 확인하는 경우 ... jquery가 직접 양식을 제출하는 문제입니다. 양식 필드의 이름 값만 설정되며 입력 버튼 자체의 값은 설정되지 않습니다.


그래서 그 대신 검사의 양식을 사용하여 제출 한 경우 :

if(isset($_POST['save_network'])) 

일해야이 같은 어쩌면 더 나은 검사 :

if($_SERVER['REQUEST_METHOD'] == "POST") 
관련 문제