2016-05-04 2 views
0

Я начинаю в php. Я хочу добавить две кнопки с разными действиями при нажатии на нее.вызывать функцию php при нажатии кнопки

код

<?php 
    function sendfeedback() { 
     $email = $_POST['email']; 
     $subject = $_POST['subject']; 
     $feedback = $_POST['feedback']; 

     $servername = "localhost"; 
     $username = "root"; 
     $password = "root"; 
     $dbname = "trial_db"; 

     $conn = new mysqli($_servername, $username, $password, $dbname); 

     if (!conn) { 
      die("Connection Failed: " . mysqli_connect_error()); 
     } 
     echo"Connected Successfully"; 
    } 
?> 

<!doctype html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Untitled Document</title> 
    </head> 
    <body> 
     <form action="<?php $_SERVER["PHP_SELF"] ?>" method="post"> 
      <table align="center"> 
       <th colspan="2" align="center">Feedback</th> 
       <tr> <td>Email id :</td> <td><input type="text" name="email"> </td></tr> 
       <tr> <td>subject :</td> <td><input type="text" name="subject"></td></tr> 
       <tr> <td>feedback : </td> <td><textarea name="feedback"></textarea></td></tr> 
       <tr><td><button name="send" onClick="sendfeedback();"> Send</button><button name="cancel">Cancel</button> 
      </table> 
     </form> 
    </body> 
</html> 

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

+1

Вам необходимо использовать AJAX. – Epodax

+0

Возможный дубликат [В чем разница между клиентским и серверным программированием?] (Http://stackoverflow.com/questions/13840429/what-is-the-difference-between-client-side-and-server -side-программирование) –

ответ

1

1 добавить идентификатор к кнопке:

<button name="send" id="send"> Send</button> 

2 грим АЯКС вызов нажатием кнопки:

$('#send').click(function(){ 
    $.ajax({ 
     url:'test.php?call=true', 
     type:'GET', 
     success:function(data){ 
     .... 
     } 
    }); 
}); 

3 в PHP разделе:

if(isset($_GET['call'])){ // check if call 
    sendfeedback(); // call function 
} 
0

Что-то вроде этого ,

<?php 

if (isset($_POST['submit'])) { 


    $email=$_POST['email']; 
    $subject=$_POST['subject']; 
    $feedback=$_POST['feedback']; 

    $servername="localhost"; 
    $username="root"; 
    $password="root"; 
    $dbname="trial_db"; 

    $conn= new mysqli($_servername,$username,$password,$dbname); 

    if(!conn){ 

     die("Connection Failed: ".mysqli_connect_error()); 

     } 
     echo"Connected Successfully"; 

    } 

} 

?> 


<body> 

<form ...> 
<input type="submit" value="Save"> 

</form> 
</body> 

ИЛИ использовать AJAX, чтобы отправлять образуют

0

Вам не нужно PHP, чтобы сделать это нужно метод AJAX, и это будет хорошо работать для вас:

<form id="my_form"> 
    <table align="center"> 
     <th colspan="2" align="center">Feedback</th> 
     <tr> <td>Email id :</td> <td><input type="text" name="email" id="email"> </td></tr> 
     <tr> <td>subject :</td> <td><input type="text" name="subject" id="subject"></td></tr> 
     <tr> <td>feedback : </td> <td><textarea name="feedback" id="feedback"></textarea></td></tr> 
     <tr><td><input type="submit" name="submit" id="submit" value="Send" /> 
    </table> 
</form> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#my_form').submit(function(e) { 
       e.preventDefault(); 
       $.ajax({ 
        method: "GET", 
        url: "send.php", 
        data: $(this).serialize(), 
       }); 
      }); 
     }); 
</script> 

Вы должны обработать вас php на другой странице, присвоенной URL-адресу AJAX (send.php), и это будет работать так идеально для вас

0

Если вы не хотите использовать ajax, вы можете использовать этот код -

<?php 
    if(isset($_POST['action']) && $_POST['action'] == 'send'){ 
     sendfeedback(); 
    } 

    function sendfeedback() { 
     $email = $_POST['email']; 
     $subject = $_POST['subject']; 
     $feedback = $_POST['feedback']; 

     $servername = "localhost"; 
     $username = "root"; 
     $password = "root"; 
     $dbname = "trial_db"; 

     $conn = new mysqli($_servername, $username, $password, $dbname); 

     if (!conn) { 
      die("Connection Failed: " . mysqli_connect_error()); 
     } 
     echo"Connected Successfully"; 
    } 
?> 

<!doctype html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Untitled Document</title> 
    </head> 
    <body> 
     <form action="<?php $_SERVER["PHP_SELF"] ?>" method="post"> 
      <table align="center"> 
       <th colspan="2" align="center">Feedback</th> 
       <tr> <td>Email id :</td> <td><input type="text" name="email"> </td></tr> 
       <tr> <td>subject :</td> <td><input type="text" name="subject"></td></tr> 
       <tr> <td>feedback : </td> <td><textarea name="feedback"></textarea></td></tr> 
       /* Made change here */ 
       <tr><td><input type="submit" name="action" value="send"><input type="submit" name="action" value="cancel"></tr> 
      </table> 
     </form> 
    </body> 
</html> 
Смежные вопросы