2013-07-23 3 views
2

Здравствуйте, ребята, просто спросите, как я могу обработать форму отправки с помощью кнопки диалога jquery. В моем коде у меня есть кнопка, которая при нажатии. Появится диалоговое окно. Ниже приведены кнопки jquery для OK и CANCEL. Моя проблема заключается в том, что я не могу отправить свою форму, единственный вариант, который у меня есть, чтобы создать кнопку отправки в моей форме. Но вместо этого я хочу использовать кнопку jquery. Я использую CodeIgniter. Надеюсь, вы можете мне помочь.Как отправить форму с помощью кнопки диалога jquery?

Мое мнение (showAllSuppliers.php)

/* FOR ADD PAGE */  
    $(".hero-unit input[name=add_supplier]").on('click',function(){ 
     $('#popup').load("<?php echo site_url("supplier_controller/addNewSupplier/"); ?>").dialog({ 
      title: "Add New Supplier", 
      autoOpen: true, 
      width: 800, 
      modal:true, 
      position: "center", 
      buttons: { 
       OK: function(){ 
        $("#addSupplier").submit(); //HOW CAN I SUBMIT MY FORM USING THIS? 
       }, 
       CANCEL: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    }); 

моя форма (addNewSupplier.php)

<?php 
$attr = array('id'=>'addSupplier'); 
echo form_open('supplier_controller/insertNewSupplier'); 
.. 
.. 
.. 
... MY TEXTBOX FIELDS HERE 
.. 
.. 
//echo "<input type='submit' value='ADD' />"; ANOTHER OPTION FOR SUBMISSION 
echo form_close(); 
?> 

моя функция контроллера (supplier_controller.php)

public function insertNewSupplier(){ 

     $this->supplier_model->insertNewSupplierDetail(); 
     redirect('supplier_controller/index','refresh'); 

} 
+0

$ ('# FormID') представляет() ; – Orangepill

+0

Я пробовал это. Вот что я сделал 'OK: function() { $ (" # addSupplier "). Submit(); // КАК МОЖНО ПРЕДОСТАВИТЬ МОЮ ФОРМУ ИСПОЛЬЗОВАТЬ ЭТО? }, ' – rochellecanale

+0

он не отправляет также мою форму. – rochellecanale

ответ

2

Try, только изменяя эту строку и ваши обычные ЯШ:

$attr = array('id'=>'addSupplier'); 
echo form_open('supplier_controller/insertNewSupplier', $attr); 

Если еще не отправляет форму, то попробуйте представить на AJAX вызова.

$(".hero-unit input[name=add_supplier]").on('click',function(){ 
    $('#popup').load("<?php echo site_url("supplier_controller/addNewSupplier/"); ?>").dialog({ 
     title: "Add New Supplier", 
     autoOpen: true, 
     width: 800, 
     modal:true, 
     position: "center", 
     buttons: { 
      OK: function(){ 
       $.ajax({ 
        url  : '<?=base_url()?>supplier_controller/insertNewSupplier', 
        type : 'POST', 
        data : $("#addSupplier").serializeArray(), 
        success : function(resp){ 
         alert("Submitted !!!"); 
         $(this).dialog("close"); 
        }, 
        error : function(resp){ 
         //alert(JSON.stringify(resp)); 
        } 
       }); 
      }, 
      CANCEL: function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
}); 
+0

ОК спасибо, я попробую, что – rochellecanale

+0

я сделал это. После заполнения полей и нажатия кнопки «ОК» появляется предупреждение, но форма не переходит к моему контроллеру. – rochellecanale

+0

что он предупреждает? –

0

Вам нужно Аякса звонок

$('#submit').click(function(){ 
     var first_name = $('#first_name').val(); 
     $.ajax({ 
      url : '/supplier_controller/insertNewSupplier, 
      type : 'post', 
        data : first_name, 
      success : function(){ 
         //do something; 
         console.log(first_name); 
        }   
       }) 
        return false; 
      }); 

Это будет работать, если вы указали кнопку объявления для отправки и ввода. Но вы также можете вызвать их через теги html. Это просто идея или пример для вас.

+0

Хорошо, спасибо за эту идею. Я применим его к моему коду. – rochellecanale

+0

Предыдущий пример работает только для кнопки отправки. Есть ли способ, каким образом я могу получить идентификатор кнопки jquery ui dialog? – rochellecanale

0

Если вы хотите использовать классическую форму представления вместо AJAX вызова, писать эти строки кода для кнопок параметр:.

buttons: { 
      OK: function(){ 
       $(this).dialog().find('form').submit(); 
      }, 
      CANCEL: function() { 
       $(this).dialog("close"); 
      } 
     } 
Смежные вопросы