Я пытался создать простой калькулятор. Используя PHP, мне удалось получить значения из полей ввода и перейти от меню POST, но, конечно, форма обновляется после отправки.
Используя Javascript, я попытался использовать
function changeText(){ document.getElementById('result').innerHTML = '<?php echo "$result";?>'
но это продолжало бы давать ответ «0» после нажатия кнопки, потому что он не мог получать значения из POST, поскольку форма не была отправлена.
Поэтому я пытаюсь разработать либо самый простой способ сделать это с помощью ajax или чего-то подобного
или получить выбранные значения в меню перехода с помощью JavaScript.
Я прочитал несколько примеров ajax в Интернете, но они довольно запутывают (не знакомы с языком)
Используйте комбинацию jQuery + JSON, чтобы отправить форму примерно так:
test.php:
<script type="text/javascript" src="jquery-1.4.2.js"></script> <script type="text/javascript" src="jsFile.js"></script> <form action='_test.php' method='post' class='ajaxform'> <input type='text' name='txt' value='Test Text'> <input type='submit' value='submit'> </form> <div id='testDiv'>Result comes here..</div>
_test.php:
<?php $arr = array( 'testDiv' => $_POST['txt'] ); echo json_encode( $arr ); ?>
jsFile.js
jQuery(document).ready(function(){ jQuery('.ajaxform').submit( function() { $.ajax({ url : $(this).attr('action'), type : $(this).attr('method'), dataType: 'json', data : $(this).serialize(), success : function( data ) { for(var id in data) { jQuery('#' + id).html( data[id] ); } } }); return false; }); });
Лучший способ сделать это – с помощью Ajax и jQuery
после того, как вы включите свою библиотеку jQuery в свою голову, используйте что-то вроде следующего
$('#someForm').submit(function(){ var form = $(this); var serialized = form.serialize(); $.post('ajax/register.php',{payload:serialized},function(response){ //response is the result from the server. if(response) { //Place the response after the form and remove the form. form.after(response).remove(); } }); //Return false to prevent the page from changing. return false; });
Ваш php будет таким.
<?php if($_POST) { /* Process data... */ if($registration_ok) { echo '<div class="success">Thankyou</a>'; die(); } } ?>
Я использую новое окно. При сохранении я открываю новое окно, которое обрабатывает сохранение и закрывает загрузку.
window.open('save.php?value=' + document.editor.edit1.value, 'Saving...','status,width=200,height=200');
Файл php будет содержать bodytag с onload = "window.close ();" и до этого, PHP-скрипт для сохранения содержимого моего редактора.
Вероятно, это не очень безопасно, но просто, как вы просили. Редактор получает информацию об отказе и т. Д.