2015-08-28 2 views
0

Я пишу форму, и я могу быть слишком напугаем это, но я хочу, чтобы форма изменилась в зависимости от ответа на вопрос. Это контактная форма. Я хочу задать вопрос, а затем использовать оператор php if else, чтобы сгенерировать ответ, если показать это haml, elseif b показать это. В итоге форма будет отправлена ​​мне по электронной почте. Вот мой вопрос. Если я установить переменные в головной секции, как это:Есть ли способ отправить форму без кнопки отправки?

<?php 
    $letter = $_POST['letter']; 
    ?> 
    </html> 
    <body> 
    <form method="post" action="<?php echo  htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    <select name="letter'> 
    <option value="a">a</option> 
    <option value="b">b</option> 
    </form> 
    <?php 
    if ($letter == a) {html} 
    elseif ($letter == b) {html} 
    ?> 

Будет ли эта работа, или же форма должны быть занесена до переменной может быть присвоено? Если это нужно отправить, может ли это быть сделано, как только выбор будет сделан в теге select и как я могу это сделать без нажатия кнопки отправки?

+0

вещи не работают, как, что, когда вы имеете дело с задней части обработки (на стороне сервера сценариев, как PHP). Чтобы ваши цели относительно динамического изменения HTML «на лету», вам следует исследовать использование Javascript. –

+0

Здесь находится JS. – user5173426

+1

Это не сработает, как вы уже догадались, форма должна быть отправлена, php работает только на сервере. или вы можете посмотреть на использование ajax – andrew

ответ

0

Да, используя javascript (jQuery), вы можете отправить форму без обновления страницы.!

выполните следующие действия и создавать файлы

example.php

<html> 
<head> 
    <!--include jquery and js code --> 
    <script type="javascript/text" src="jquery.js"></script> 
    <script type="javascript/text" src="myjs.js"></script> 
</head> 
    <body> 
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
     <select name="letter' id="letter"> 
      <option value="a">a</option> 
      <option value="b">b</option> 
     </select> 
    </form> 
    <div id="response"></div> 
    </body> 
</html> 

myjs.js

$(document).ready(function(){ 
    $("#letter").change(function(){ 
      $.post("process.php", { letter: $(this).val() },function(r){ 
       $("#response").html(r); 
      }); 
    }); 
}); 

Теперь окончательное process.php

теперь process.php вы можете сделать процесс как что

<?php 
$letter = $_POST['letter']; 
if ($letter == a) {html} 
elseif ($letter == b) {html} 
?> 
Смежные вопросы