2015-06-21 4 views
0

У меня есть HTML-форма, которая разбита на три основных компонента. Верхняя часть по существу представляет собой заголовок для отображения названия журнала. Эта информация не изменяется.Как обновить (обновить) страницу HTML для новых данных после нажатия кнопки «Отправить»

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

Нижняя часть - это экран ввода данных для ввода информации о каждой истории, содержащейся в выпуске журнала.

После ввода данных и нажатия кнопки отправки в нижней части, средняя часть должна обновляться через запрос MySQL, чтобы отразить вновь введенную историю. Этого не произошло.

Примечание: Код, ранее связанный с этим вопросом, был удален для ясности. Решение было связано с тем, как назывались различные формы. Я благодарю Sulthan Allaudeen за предоставление потенциальных решений. В настоящее время я не знаком с использованием jquery-ajax. В конце концов мне нужно будет учиться.

+0

Почему у вас такое огромное «эхо» Просто закройте тег php перед html и откройте после этого. Также вам необходимо обновить данные по вызову jquery-ajax после отправки кнопки –

+0

. Использование эха - это увидеть, как работает код. В основном трассировка ошибок. К сожалению для меня, я не знаком с jquery-ajax. –

ответ

0

Решения освежающие формы для отображения добавления новых данных был повторно назвать его через следующую строку: «включает в себя (» new_stories.inc.php «);». Эта строка выполняется сразу после кода вставки MySQL в разделе ввода данных формы.

Средняя часть формы «new_stories.inc.php» (оглавление) запрашивает базу данных MySQL для получения информации о истории, связанной с текущей проблемой журнала. Повторное вызов формы эквивалентно повторному запросу.

0

Как ОП хотел бы знать, как сделать Jquery и Ajax вызова

Шаг 1:

Признают Input

есть кнопка с классом trigger

$(".trigger").click(function() 
{ 
//your ajax call here 
} 

Шаг 2:

Trigger ваш Аякса вызов

$.ajax({ 
type: "POST", 
url: "yourpage.php", 
data: dataString, 
cache: false, 
success: function(html) 
{ 
//your action 
} 
}); 

Шаг 3:

Внутри вашей функции успеха показать результат

$("#YourResultDiv").html(data); 

Для этого вы должны создать DIV с именем, как YourResultDiv

Примечание:

Внутри вашего yourpage.php Вы должны просто напечатать таблицу, и он будет отображаться как выход

+0

Спасибо. Потребуется некоторое время, чтобы переварить. –

0

Вот краткий пример отображения результатов отправки формы, не покидая текущей страницы. Подача формы осуществляется с помощью Ajax. В каждой форме есть собственная кнопка для представления, следовательно, цикл над соответствующими элементами в onDocLoaded.

1. blank.php форма отправлена ​​в этот сценарий

<?php 
echo "-------------------------------<br>"; 
echo " G E T - V A R S<br>"; 
echo "-------------------------------<br>"; 
var_dump($_GET); echo "<br>"; 

echo "-------------------------------<br>"; 
echo " P O S T - V A R S<br>"; 
echo "-------------------------------<br>"; 
var_dump($_POST); echo "<br>"; 
echo "<hr>"; 

if (count($_FILES) > 0) 
{ 
    var_dump($_FILES); 
    echo "<hr>"; 
} 
?> 

2. blank.html Содержит 2 формы, показывает результат представления любого из них вышеприведенного сценария.

<!DOCTYPE html> 
<html> 
<head> 
<script> 
"use strict"; 
function byId(id,parent){return (parent == undefined ? document : parent).getElementById(id);} 
function allByClass(className,parent){return (parent == undefined ? document : parent).getElementsByClassName(className);} 
function allByTag(tagName,parent){return (parent == undefined ? document : parent).getElementsByTagName(tagName);} 
function newEl(tag){return document.createElement(tag);} 
function newTxt(txt){return document.createTextNode(txt);} 

function toggleClass(elem, className){elem.classList.toggle(className);} 
function toggleClassById(targetElemId, className){byId(targetElemId).classList.toggle(className)} 

function hasClass(elem, className){return elem.classList.contains(className);} 
function addClass(elem, className){return elem.classList.add(className);} 
function removeClass(elem, className){return elem.classList.remove(className);} 

function forEachNode(nodeList, func){for (var i=0, n=nodeList.length; i<n; i++) func(nodeList[i], i, nodeList); } 

// callback gets data via the .target.result field of the param passed to it. 
function loadFileObject(fileObj, loadedCallback){var reader = new FileReader();reader.onload = loadedCallback;reader.readAsDataURL(fileObj);} 

function myAjaxGet(url, successCallback, errorCallback) 
{ 
    var ajax = new XMLHttpRequest(); 
    ajax.onreadystatechange = function() 
    { 
     if (this.readyState==4 && this.status==200) 
      successCallback(this); 
    } 
    ajax.onerror = function() 
    { 
     console.log("AJAX request failed to: " + url); 
     errorCallback(this); 
    } 
    ajax.open("GET", url, true); 
    ajax.send(); 
} 

function myAjaxPost(url, phpPostVarName, data, successCallback, errorCallback) 
{ 
    var ajax = new XMLHttpRequest(); 
    ajax.onreadystatechange = function() 
    { 
     if (this.readyState==4 && this.status==200) 
      successCallback(this); 
    } 
    ajax.onerror = function() 
    { 
     console.log("AJAX request failed to: " + url); 
     errorCallback(this); 
    } 
    ajax.open("POST", url, true); 
    ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    ajax.send(phpPostVarName+"=" + encodeURI(data)); 
} 

function myAjaxPostForm(url, formElem, successCallback, errorCallback) 
{ 
    var ajax = new XMLHttpRequest(); 
    ajax.onreadystatechange = function() 
    { 
     if (this.readyState==4 && this.status==200) 
      successCallback(this); 
    } 
    ajax.onerror = function() 
    { 
     console.log("AJAX request failed to: " + url); 
     errorCallback(this); 
    } 
    ajax.open("POST", url, true); 
    var formData = new FormData(formElem); 
    ajax.send(formData); 
} 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

window.addEventListener('load', onDocLoaded, false); 
function onDocLoaded() 
{ 
    forEachNode(allByClass('goBtn'), function(elem){elem.addEventListener('click', onGoBtnClicked, false);}); 
} 

function onGoBtnClicked(evt) 
{ 
    evt.preventDefault(); 
    var thisElem = this; 
    var thisForm = thisElem.parentNode; 

    myAjaxPostForm('blank.php', thisForm, onPostSuccess, onPostFailed); 

    function onPostSuccess(ajax) 
    { 
     byId('tgt').innerHTML = ajax.responseText; 
    } 
    function onPostFailed(ajax) 
    { 
     //byId('tgt').innerHTML = ajax.responseText; 
     alert("POST FAILED!!!!"); 
    } 
    return false; 
} 
</script> 
<style> 
#page 
{ 
    display: inline-block; 
    border: solid 1px gray; 
    background-color: rgba(0,0,0,0.2); 
    border-radius: 6px; 
} 
.controls, .tabDiv 
{ 
    margin: 8px; 
    border: solid 1px gray; 
    border-radius: 6px; 
} 
.tabDiv 
{ 
    overflow-y: hidden; 
    min-width: 250px; 
    background-color: white; 
    border-radius: 6px; 
} 
.tabDiv > div 
{ 
    padding: 8px; 
} 
</style> 
</head> 
<body> 
<div id='page'> 

    <div class='tabDiv' id='tabDiv1'> 
     <!-- <div style='padding: 8px'> --> 
     <div> 
      <form id='mForm' enctype="multipart/form-data" > 
       <label>Name: </label><input name='nameInput'/><br> 
       <label>Age: </label><input type='number' name='ageInput'/><br> 
       <input type='file' name='fileInput'/><br> 
       <button class='goBtn'>GO</button> 
      </form> 
     </div> 
    </div> 

    <div class='tabDiv' id='tabDiv2'> 
     <!-- <div style='padding: 8px'> --> 
     <div> 
      <form id='mForm' enctype="multipart/form-data" > 
       <label>Email: </label><input type='email' name='emailInput'/><br> 
       <label>Eye colour: </label><input name='eyeColourInput'/><br> 
       <label>Read and agreed to conditions and terms: </label><input type='checkbox' name='termsAcceptedInput'/><br> 
       <button class='goBtn'>GO</button> 
      </form> 
     </div> 
    </div> 

<!-- <hr> --> 
    <div class='tabDiv'> 
     <div id='tgt'></div> 
    </div> 
</div> 
</body> 
</html> 
+0

Спасибо. Потребуется некоторое время, чтобы переварить. –

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