2016-04-20 80 views
-5

我想通過單擊鏈接或按鈕來觸發PHP函數。我該怎麼做?我已經使用JavaScript onclick功能,但有沒有辦法做到這一點?單擊鏈接執行PHP函數

+3

您可以使用Ajax帖子來使用Javascript觸發PHP。 – Jer

+0

函數是否必須在沒有頁面刷新的情況下執行? – Tom

+1

你必須在你的問題中描述你的問題,而不只是輸入你想要做的事情,只是發佈它。還張貼您嘗試使用的代碼。 –

回答

0

最好用jquery,ajax發送json格式的數據。像

code.js

$(document).ready(function(){ 
    $("#submit").click(function(e){ 

     var status = $('form')[0].checkValidity(); 
     if(status){ 
      var formData = new FormData($('form')[0]); 

      $.ajax({ 
       url: "code.php", 
       type: "POST", 
       data: formData, 
       processData: false, 
       contentType: false, 
       async: false, 
       dataType: "JSON", 

       success: function(json){ 
        if(json.error){ 
         alert(json.error_msg); 
         e.preventDefault(); 
        }else{ 
         alert("Data stored successfully!"); 
        } 
       }, 

       error: function(jqXHR, textStatus, errorThrown){ 
        alert(errorThrown); 
       } 
      }); 
     } 

    }); 
}); 

code.php

<?php 
    define('HOST','localhost'); 
    define('USER','***'); 
    define('PASS','***'); 
    define('DB','***'); 

    $response = array(); 

    $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect'); 

    if(!mysqli_connect_errno()){ 

     $error_flag = false; 
     /*foreach($_POST as $value){ 
      if(empty($value)){ 
       $error_flag = true; 
       break; 
      } 
     }*/ 

     if(!$error_flag){ 

      //receiving post parameters 
      $sdn =$_POST['sdn']; 




            // create a new user profile 
            $sql = "INSERT INTO safety(sdn, created_at) VALUES ('$sdn',NOW())"; 
            if(mysqli_query($con,$sql)){ 
             $response["error"] = false; 
             echo json_encode($response); 

            }else{ 
             $response["error"] = true; 
             $response["error_msg"] = "INSERT operation failed"; 
             echo json_encode($response); 
            } 

     }else{ 
      $response["error"] = true; 
      $response["error_msg"] = "Few fields are missing"; 
      echo json_encode($response); 
     } 

    }else{ 
     $response["error"] = true; 
     $response["error_msg"] = "Database connection failed"; 
     echo json_encode($response); 
    } 
?> 

並且最後使用jQuery內部鏈接 code.html

<!DOCTYPE html> 
<html> 
<head> 

    <meta charset="utf-8"> 

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <script type="text/javascript" src = "code.js"></script> 

</head> 

<body> 
    <form id="form" name ="form" method = "POST" action="Next_page.html" class="wizard-big" autocomplete = "off"> 

<div class="col-sm-3 form-group"> 
<input type="text" placeholder="sdn" class="form-control" id="sdn" name="sdn"> 
<div class="col-sm-12 form-group"> 
<input style="width:100%" type="submit" name = "submit" id = "submit" value = "Save and continue" class="btn btn-success"> 
</div> 
</div> 
</form> 
</body> 
</html> 
+0

HTTP/1.1 404'jquery_source.js'未找到! – Jer

+0

哎呀..!感謝你,想我錯過了提及實際的鏈接!虐待更新它 –

+1

哈哈沒關係! :-) – Jer