2014-04-27 64 views
0

我想用ajax這裏PHP創建登錄系統是我的代碼調用PHP函數如何使用jQuery AJAX

jQuery(document).ready(function ($) { 


// login function 
$('form#login').on('submit', function(){ 
    var url = document.getElementById('hidden').innerHTML; 
    var login_result = $('.login_result'); 
    var input_data = $('form#login').serialize() + "&action=login"; 
    $.ajax({ 
     type: "POST", 
     data: input_data, 
     url: url + 'lib/my_func.php', 
     success: function(responseText){ // Get the result and asign to each cases 
      if(responseText == 0){ 
       login_result.html('<span class="error">Username or Password Incorrect!</span>'); 
      } 
      else if(responseText == 1){ 
       window.location = 'userpage.php'; 
      } 
      else{ 
       alert('Problem with sql query'); 
      } 
     } 
    }); 
    return false; 
}); 




}); 

,這裏是我的PHP函數

function login() 
{ 
    if(isset($_POST['action']) && $_POST['action'] == 'login') 
    { 
     $user = $_POST['login']; 
     $pas = $_POST['password']; 

     echo $user; 

    } 
} 

但在這個PHP登錄功能沒有輸出。如果我刪除函數echo $用戶是真實的,如何呼應登錄功能$用戶 請幫我

+2

你必須調用該函數'登錄();' – Aaroniker

+0

是的,我想打電話給登錄( )函數使用ajax – Sahill

+0

是的,只需將'login();'放在該函數的末尾,以便實際調用它來開始驗證過程。 –

回答

1

使用你的js代碼很好,但修改my_func.php創作者的評論後

<?php 
    function login() { 
    if(isset($_POST['action']) && $_POST['action'] == 'login') 
     { 
      $user = $_POST['login']; 
      $pas = $_POST['password']; 

      echo $user; 

     } 
    } 
    login();  
?> 

UPD : 您可以通過添加一個特殊參數來指定要調用哪個函數(例如,現在您正在使用&action=login)。 my_func.php的代碼如下所示:

<?php 
     function login() { 
     if(isset($_POST['action']) && $_POST['action'] == 'login') 
      { 
       $user = $_POST['login']; 
       $pas = $_POST['password']; 

       echo $user; 

      } 
     } 
     $action = $_GET['action']; 
     if ($action == 'login') { 
      login(); 
     } else { 
      echo "No action {$action} found"; 
     } 
    ?> 
+0

但先生我想使用的功能,因爲在這個文件中我創建forget_password功能等 – Sahill

+0

@ user1596202你應該再次請求忘記密碼。或者您可以指定在您的ajax請求中調用哪個函數。 –

+0

ooo先生謝謝您的想法工作,謝謝 – Sahill

1

你可以使用:

$('#submit').click(function() 
{ 
    $.ajax({ 
     type:'POST', 
     url: 'your_url_of_php_file', 
     data: "name="+$('#field_id').val()+"&email="+$('#field_id').val()+"", 
     success:function(result) 
     { 
      alert(result) 
     } 
    }) 
} 

和PHP文件

<?php 
    if(isset($_POST['name'])) 
    { 
     $name=$_POST['name']; 
     $email=$_POST['email']; 
     echo $email." ".$name; 
    } 
?> 
+0

先生我想創建這樣的WordPress,如果在功能我使用5個或更多不同的ajax請求,那麼我們將創建每個ajax請求的分隔文件? – Sahill

+0

你想從ajax調用你的php函數? –

+0

是的,我想從ajax打電話給我的php函數 – Sahill

0

那麼你可以使用:

var input_data = $('form#login').serialize(); 
$.ajax({ 
    type:'POST', 
    url:'function.php', 
    data:"function="+$('#function_name').val()+"&value="+input_data; 
    success:function(result) 
    { 
    alert(result); 
    } 
}) 

in php:

<?php 
    if(isset($_POST['function'])) 
    { 
    $_POST['function']($_POST['value']); 
    } 

    function abc($data) 
    { 
    //some code 
    } 

?> 

你只需要發送功能名稱及其值,那麼在你的PHP函數將調用自動...