2016-04-20 82 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