2016-11-18 3 views
0

У меня есть проблемы с моей страницей html. Я хочу, чтобы он перезагрузился после нажатия кнопки отправки. Я попытался перезагрузить его с помощью javascript, но он продолжает давать мне белую страницу (после сохранения данных, которые мне нужны в файле).Пустая страница на кнопку отправки

Вот HTML код:

<html> 
    <head> 
     <title>Sample Web Form</title> 
    </head> 
<body> 

<h1>Fill Out This Form</h1> 


<form action="myprocessingscript.php" method="POST"> 
<p><i>Choose one or more of the available options that represent the current mental state of the System:</i></p> 
    <input type="checkbox" name="mentalState[]" value="Knows user culture"> Knows User Culture<br> 
    <input type="checkbox" name="mentalState[]" value="Knows concept "> Knows Concept<br> 
    <input type="checkbox" name="mentalState[]" value="Knows that user knows concept"> Knows that User Knows Concept<br> 


<p><i>Choose the corresponding action:</i></p> 
    <input type="checkbox" name="action" value="cultureIdentif"> Culture Identification<br> 
    <input type="checkbox" name="action" value="conceptIdentif"> Concept Identification<br> 


<p><i>Choose one or more of the available options that represent the current mental state of the System following the action:</i></p> 

    <input type="checkbox" name="mentalState2[]" value="Knows user culture"> Knows User Culture<br> 
    <input type="checkbox" name="mentalState2[]" value="Knows concept"> Knows Concept<br> 
    <input type="checkbox" name="mentalState2[]" value="Knows that user knows concept"> Knows that User Knows Concept<br> 
    </br> 

    <input type="submit" value="Save Data"> 

</form> 
</body> 
</html> 

здесь код PHP:

<?php 


if(!empty($_POST['mentalState'])){ 
    // Loop to store and display values of individual checked checkbox. 
    foreach($_POST['mentalState'] as $mentalState) 
     ($mentalState1=$mentalState . ',' . $mentalState1); 
    } 

    if(!empty($_POST['mentalState2'])){ 
     // Loop to store and display values of individual checked checkbox. 
     foreach($_POST['mentalState2'] as $mentalState) 
      ($mentalState2=$mentalState . ',' . $mentalState2); 
     } 


     if(isset($mentalState1) && isset($_POST['action']) && isset($mentalState2)) { 
      $data = $mentalState1 . '-' . $_POST['action'] . '-' . $mentalState2 . "\n"; 
      $ret = file_put_contents('matrix.txt', $data, FILE_APPEND | LOCK_EX); 
      if($ret === false) { 
       die('There was an error writing this file'); 
      } 

    } else { 
    die('no post data to process'); 
} 

Спасибо за вашу помощь!

+1

Место 'заголовок («Location: $ _SERVER [» HTTP_REFERER '] ");' внутри вашего последнего оператора 'IF', когда он завершится без ошибок, он перенаправит вас обратно на страницу, с которой вы отправили. – Blinkydamo

+0

Вы можете написать файл? –

+1

Некоторая разумная вставка кода была бы хорошей идеей. Это помогает нам читать код и, что более важно, это поможет ** вы отлаживаете свой код ** [Взгляните на стандарт кодирования] (http://www.php-fig.org/psr/psr-2/) для вашей собственной выгоды. – RiggsFolly

ответ

0

Я думаю, что вам не хватает одно условие здесь

у вас есть только

if($ret === false) { 
    die('There was an error writing this file'); 
} 

попробовать, чтобы добавить другое, и увидеть

if($ret === false) { 
    die('There was an error writing this file'); 
} else { 
    header('Location: ' . $_SERVER['HTTP_REFERER']); 
} 
+0

@RiggsFolly смотрите мое обновление, я добавил код заминировать –

+0

@KanishkaPanamaldeniya This синтаксис работал для меня: header ('Location:'. $ _SERVER ['HTTP_REFERER']) спасибо! – janeloulou

+0

@ user2267486 приятно. пожалуйста, отметьте ответ как принято :). Я обновил свой ответ с помощью вашего синтаксиса –