2014-12-12 2 views
1

Я бы сказал, что я хочу отправить содержимое каждой вкладки (значения формы), когда выбрана другая вкладка. Таким образом, пользователь перемещается между вкладками, не перезагружая всю форму. И значения сохраняются, даже если они частично заполнены в базе данных.Yii2: Авто сохранить форму при переходе на другую вкладку в форме

Я думаю, что это может быть сделано с помощью jquery или javascript, например, щелчок по вкладке имитирует нажатие кнопки сохранения одновременно.

Я также пробовал этот код, но он не работает? Идентификатором вкладки является # ui-id-3, а идентификатор кнопки сохранения - # save1.

<script> 
    $('#ui-id-3').click(function(){ 
    $('#save1').click(); 
    return false; 
}); 
    </script> 

Что я здесь делаю неправильно?

С предложить модификации:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script> 
    $(function() { 
    $("#ui-id-3").click(function(){ 
    autoSave(); 
    return false; 
    }); 
}); 

function autoSave(){ 
     var formData = $("#w0").serialize(); 
     $.ajax({ 
     type:"POST", 
     url:"/hospitalerp/web/index.php?r=daily-ward-entry%2Fcreate", 
     data:formData,//only input 
     success: function(response){ 
      $("#recordID").val(response); 
     } 
    }); 


    } 
    </script> 

ответ

2

Вот простое решение, но у вас есть придется изменить согласно вам необходимо

Шаг один:

Создать скрытое поле с для ID поле мы будем хранить идентификатор записи базы данных в нем вы можете name/id ввод как recordID, поэтому мы можем ссылаться на него в нашем коде jQuery

<input type="hidden" name="recordID" id="recordID" value="0" /> 

Шаг два:

Создать страницу сервера, который сервер для вставки базы данных/Updation вы можете назвал его autoSave.php эта страница будет получать полную форму, и если recordID <=0 то он будет вставить дб и вернуть вновь вставленный ID еще будет обновлять таблицу where Id = recordID

Шаг 3:

Код Jquery, который будет вызывать autoSavePage при нажатии Tab.

$(function() { 
 
    $(".tabs").click(function(){ 
 
    autoSave(); 
 
    return false; 
 
    }); 
 
}); 
 

 
function autoSave(){ 
 
     var formData = $("#formID").serialize(); 
 
     $.ajax({ 
 
     type:"POST", 
 
     url:"autoSave.php", 
 
     data:formData,//only input 
 
     success: function(response){ 
 
      $("#recordID").val(response); 
 
     } 
 
    }); 
 
    
 
      
 
    }
Html Form ID должны быть FormID

<form id="formID" method="POST" action="autoSave.php">.. 

Это идея, когда-либо кто-либо нажать на любую вкладку Аякса вызов будет генерировать, чтобы сохранить форму остальное вы должны изменить в соответствии к вашему коду, поскольку вы не представили какой-либо код, поэтому я сделал общий пример

Надеюсь, это поможет!

+0

Hi Saquibahmad - Я использую структуру Yii2, и значение id по умолчанию установлено так: '

' – Pawan

+0

без проблем вы можете использовать созданные сгенерированные имена, поскольку вы видели, что есть только три рефренса , идентификатор скрытой формы поля и автосохранение страницы все это можно легко получить – saqibahmad

+0

Hi Saqibahmad - я вставил модифицированный код, но он, похоже, не работает. странно! – Pawan

Смежные вопросы