2016-05-04 10 views
0

私はPHPの初心者です。私はそれをクリックすると、別のアクションで2つのボタンを追加したい。ボタンをクリックすると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> 

私は私が他のページにリダイレクトすることなく、送信ボタンをクリックすると、フィードバック機能を呼び出したいです。私はこれに固執しています。ボタンのクリックで

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

2メイクAJAX呼び出し:PHPのセクションで

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

3:

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

AJAXを使用する必要があります。 – Epodax

+0

[クライアント側とサーバー側のプログラミングの違いは何ですか?](http://stackoverflow.com/questions/13840429/what-is-the-difference-between-client-side-and-serverサイドプログラミング) –

答えて

1

1を助けてください。

<?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> 

ORあなたはAJAXの方法が必要であることを行うために、これはあなたのために正常に動作しますPHPを必要としない形

0

このような何かをボタンにIDを追加してくれ

0

を投稿する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> 

あなたはあなたを処理する必要がAJAX URL(send.php)に割り当てられた別のページに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> 
関連する問題