2011-03-14 25 views
9

我們有一個大的PHP系統,我正在更改爲OOP並希望使用AJAX來更新登錄用戶的網頁。我完全自學成才,對HTML,CSS和PHP有了基本的Javascript理解。基本的PHP和AJAX

試圖學習與PHP的AJAX是擊敗了我。在嘗試了一套自制的腳本來測試AJAX,這將無法正常工作,然後我去了Internet的例子,並沒有得到任何工作。這是在我的開發Mac上運行MAMP和使用我的主機,我們保持當前的系統。

我的問題是,有沒有人有一個簡單的'hello world'的HTML和PHP腳本集,他們知道我可以嘗試確認我可以運行已知的東西。

非常感謝 科林

+1

您可能會發現使用像jQuery這樣的JavaScript庫可以讓您的AJAX變得更加輕鬆。沒有看到你目前的嘗試,很難知道你是否有瀏覽器兼容性問題或只是日常代碼問題。 jQuery擺脫了大部分的兼容性問題。 – dnagirl 2011-03-14 12:15:51

回答

8

無不是真的,但我會建議你使用jQuery,如果你要在所有做任何的AJAX。它會讓你的生活變得更容易。

尤其是因爲所有的瀏覽器都沒有以相同的方式實現ajax的東西。使用jQuery + PHP的Ajax調用

示例應用程序:

我會假設你已經有了一些基本的html文件,我只是要包括重要的位..

接收器.PHP:

<?php 
echo 'you just received me, I\'m some PHP code and ajax is definitely working...'; 
?> 

sender.html:

<p>Hello, click this button: <a id="button" href="receiver.php">Click me</a></p> 
<p id="container"><!-- currently it's empty --></p> 

<!-- including jQuery from the google cdn --> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 

<script type="text/javascript"> 
// This is our actual script 
$(document).ready(function(){ 
    $('a#button').click(function(){ 
     $.ajax({ 
      url: this.href, 
      type: 'GET', 
      dataType: 'html', 
      success: function (data) { 
       $('#container').html(data); 
      } 
     }); 
    }); 
}); 
</script> 

這應該是人你需要一個基本的Ajax應用程序...

+0

感謝迄今。在我正在研究的程序中,我不想使用jquery。佈局HTML和Javascript的其餘部分正在與我使用AJAX一起使用,在頁面的一部分按鈕行中的按鈕將被選中,並將頁面的功能部分顯示在頁面另一部分的div中。據我所見,這應該只需要一個AJAX腳本來調用PHP腳本中的函數,該腳本使用按鈕ID以及$ _POST中的表單數據進行選擇。如果我可以一次性寫下它,並且無需研究jQuery的工作方式,將來可以更容易地進行維護。 – 2011-03-14 15:09:39

+0

@Colin - 如果你真的只想使用普通的javascript,你需要閱讀http://www.jibbering.com/2002/4/httprequest.html。該頁面還將向您展示如何爲IE和Firefox創建對象。 – 2011-03-14 15:53:07

+0

您將遇到困難。我曾經這樣做,之前jQuery /原型出現,我花了大部分時間在ajax實現,而不是我的應用程序/ ajax邏輯 – arnorhs 2011-03-14 16:45:39

11

如果你打算使用AJAX,我也會推薦使用jQuery。這極大地簡化了過程,經過了跨瀏覽器的測試並具有許多易於使用的包裝功能。

它真的那麼容易,因爲創建一個名爲hello.php

<?php 
    echo "Hello World"; 
?> 

然後在你的主頁,你需要抓住jQuery庫,並把它掛到文檔就緒事件PHP頁面。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function(){ 
     $.get("hello.php", function(data){ 
      alert(data); 
     }); 
    }); 
</script> 

這實際上是最簡單的AJAX的Hello World教程中,我知道:)

2

下面是一個使用jQuery的,張貼從形式值到一個單獨的PHP文件驗證並返回結果一個基本的例子。

form.php的

<html> 

<head> 
<title>Simple JQuery Post Form to PHP Example</title> 
</head> 

<body> 

<!-- including jQuery from the google cdn --> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js">  </script> 

<!-- This div will be populated with error messages --> 
<div id="example_form_error"></div> 

<!-- This div will be populated with success messages --> 
<div id="example_form_success"></div> 

<!-- Here is your form --> 
<div id="example_form_enter"> 
    <form id="contact_modal_form" method='post' action='form_post.php'> 
      <label for="Name">Enter Your Name (Not "Adam"):</label> <input class='textbox' name='Name' type='text' size='25' required /> 
      <button class='contact_modal_button' type='submit'>Send</button> 
    </form> 
</div> 

<!-- This div contains a section that is hidden initially, but displayed when the form is submitted successfully --> 
<div id="example_form_confirmation" style="display: none"> 
    <p> 
     Additional static div displayed on success. 
     <br> 
     <br> 
     <a href="form.php">Try Again</a> 
    </p> 
</div> 

<!-- Below is the jQuery function that process form submission and receives back results --> 
<script> 
    $(function() { 
     $("#contact_modal_form").submit(function(event) { 
      var form = $(this); 
      $.ajax({ 
       type: form.attr('method'), 
       url: form.attr('action'), 
       data: form.serialize(), 
       dataType: 'json', 
       success: function(data) { 
        if(data.error == true) { 
         var error = $("#example_form_error"); 
         error.css("color", "red"); 
         error.html("Not " + data.msg + ". Please enter a different name."); 
        } else { 
         $("#example_form_enter").hide(); 
         $("#example_form_error").hide(); 
         $("#example_form_confirmation").show(); 

         var success = $("#example_form_success"); 
         success.css("color", "green"); 
         success.html("Success! You submitted the name " + data.msg + "."); 
        } 
       } 
      }); 
      event.preventDefault(); 
     }); 
    }); 
</script> 

</body> 

</html> 

form_post。php

<?php 

    // Request Post Variable 
    $name = $_REQUEST['Name']; 

    // Validation 
    if($name == 'Adam') { 
    echo json_error($_REQUEST['Name']); 
    } else { 
    echo json_success($_REQUEST['Name']); 
    }; 

    // Return Success Function 
    function json_success($msg) { 
     $return = array(); 
     $return['error'] = FALSE; 
     $return['msg'] = $msg; 
     return json_encode($return); 
    } 

    // Return Error Function 
    function json_error($msg) { 
     $return = array(); 
     $return['error'] = TRUE; 
     $return['msg'] = $msg; 
     return json_encode($return); 
    } 

?>