2015-04-21 2 views
1

Итак, ниже приведен фрагмент моего кода.PHP/HTML-форма не отправляется с базой MYSQL

 <?php 
      if (!empty($_POST['name']) && !empty($_POST['blocks'])) { 
       $name = mysql_real_escape_string($_POST['name']); 
       $blocks = mysql_real_escape_string($_POST['blocks']); 


       $registerQuery = mysql_query("INSERT INTO events (Name, Blocks) VALUES('".$name."', '".$blocks."')"); 

       if ($registerQuery) { 
        echo "<script> window.location.replace('/manager/index?success=addEvent')</script>"; 
       } else { 
        echo "<script> window.location.replace('/manager/index?failure=addEvent')</script>"; 
       } 
      } else { 

     ?> 
     <!-- CONTENT CONTAINER --> 
     <div class="container"> 
      <form method="post" action="/manager/addEvent.php" name="registerform" id="registerform"> 
       <div class="form-group"> 
        <label for="name">Event Name</label> 
        <input type="text" class="form-controll" id="name" placeholder="e.g. artblocks"> 
       </div> 
       <div class="form-group" name="blocks" id="blocks"> 
        <select class="form-control" for="blocks"> 
         <option value="">1</option> 
         <option value="">2</option> 
         <option value="">3</option> 
         <option value="">4</option> 
         <option value="">5</option> 
         <option value="">6</option> 
         <option value="">7</option> 
         <option value="">8</option> 
        </select> 
       </div> 
       <div class="form-group"> 
        <input type="submit" name="register" id="register" class="btn btn-default" value="Submit" /> 
       </div> 
      </form> 
      <?php } ?> 

Когда я отправляю форму на свою веб-страницу, она не работает вообще. Он просто обновляет страницу, как будто ничего не произошло. Когда я пытаюсь использовать стрелку «НАЗАД», google chrome предупреждает меня, что я представил информацию, и мне придется ее повторно отправить. Я знаю, что это «подчинение», но он не отбрасывает меня на главную страницу вообще. У меня JQuery, и я знаю, что ни один из файлов не заканчивается .php, на которые ссылаются, для этого настроен мой .htaccess. Я не могу для жизни понять, что здесь не так.

+4

Пожалуйста, [прекратить использование '' mysql_ * функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). Они больше не поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://jayblanchard.net/demystifying_php_pdo.html). Кроме того, добавьте некоторую проверку ошибок на ваши запросы и PHP. –

+0

Я цитирую @JayBlanchard и добавляю: можете ли вы опубликовать первую часть своего кода. Проблема, вероятно, в том, что вы не отправили –

+0

использовать заголовок php '('Location:'); exit(); 'вместо' echo ' ";' – SuperDJ

ответ

3

Ваша форма не содержит атрибута name со значением name. Поэтому оператор if всегда возвращает false и выполняет часть else.

Ознакомьтесь с приведенным ниже кодом.

<?php 
    if (isset($_POST['register']) && isset($_POST['name_ex']) && isset($_POST['blocks'])) { 
     // REMEMBER: DO NOT USE mysql_* ! 
     $name = mysql_real_escape_string($_POST['name_ex']); 
     $blocks = mysql_real_escape_string($_POST['blocks']); 

     $registerQuery = mysql_query("INSERT INTO events (Name, Blocks) VALUES ('".$name."', '".$blocks."')"); 

     if ($registerQuery) { 
      echo "<script> window.location.replace('/manager/index?success=addEvent')</script>"; 
     } else { 
      echo "<script> window.location.replace('/manager/index?failure=addEvent')</script>"; 

     } 
    } else { 

?> 
    <!-- CONTENT CONTAINER --> 
    <div class="container"> 
    <form method="post" action="/manager/addEvent.php" name="registerform" id="registerform"> 
     <div class="form-group"> 
      <label for="name">Event Name</label> 
      <input type="text" class="form-controll" id="name_ex" name= "name_ex" placeholder="e.g. artblocks"> 
     </div> 
     <div class="form-group" name="blocks" id="blocks"> 
      <select class="form-control" for="blocks" name="blocks" > 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
       <option value="5">5</option> 
       <option value="6">6</option> 
       <option value="7">7</option> 
       <option value="8">8</option> 
      </select> 
     </div> 
     <div class="form-group"> 
      <input type="submit" name="register" id="register" class="btn btn-default" value="Submit" /> 
     </div> 
    </form> 
<?php } ?> 
+0

Спасибо! Исправлено ваше первое имя '' name_ex', как и должно быть в соответствии с вашим кодом. –

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