2011-04-21 137 views
3

我有這樣一個按鈕,以便:如何將表單數據從JavaScript傳遞到PHP並返回?

<a href="#" onclick="do_something()">Click Me</a> 

而且像這樣(在需要改變的值或YouTube的嵌入,或什麼的)一個像場:

<img src="<?php get_src(); ?>" /> 

當用戶點擊按鈕do_something()需要從PHP文件發送數據,該文件處理數組(在這種情況下爲JSON,但不相關),併發回下一個值。

基本上,當您打開頁面時,get_src()包含數組的第一項,並且單擊do_something()將信息發送到PHP表單以接收數組中的另一項,然後將數據發送回該文件,並更新get_src()

我有什麼概念錯誤嗎?我真的不知道這是如何工作的。

+1

簡短回答:AJAX – 2011-04-21 03:57:16

回答

1

使用AJAX,作爲kpower已建議。或者更好,嘗試JQuery Ajax,雖然後來基本上提供了一個簡單而有趣的方式來做Ajax調用。

Here是一個很好的教程,從站點上jQuery的Ajax。

編輯

在服務器端,將一些數據返回給調用AJAX方法,你可以使用json_encode功能。它從JSON格式的數據中生成一個字符串。然後你可以只用echo這個字符串把它傳回給ajax回調函數。請記住,返回數據作爲對ajax的響應就像使用PHP將數據打印到網頁中一樣,您只需要echo/print就可以了。

另外要小心這些方案 -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>First Tag library Example - EL Function</title> 
</head> 
<body> 
<?php echo $your_json_response_string; ?> 

</body> 
</html> 

如果您呼應串像上面,然後全部內容,包括所有的HTML標籤和其他人將作爲Ajax調用的響應被髮送。如果你只需要通過一些數據,說,一些交易基於一些要求數據庫數量,而是執行此操作 -

<?php 
    // do your processing, but print/echo nothing 
    .......... 
    // Convert your result into a json_string 
    .......... 

    echo $your_json_response_string; 
?> 
+0

是的,這是我一直在努力的。但是,我不確定在PHP方面做什麼。我使用'.get('process.php',function(data){$('#results')。html(data);});得到了我的結果;'但是我在程序結束時做了什麼.php'?我應該只使用'echo'嗎? – altrier 2011-04-21 04:28:21

+0

@altrier:查看編輯。如果仍有問題,請回複評論。 – 2011-04-21 05:28:08

3

使用jQuery,你可以一個Ajax後綁定到PHP文件中這樣:

$('#myLink').click(function() { 
    var myData = 'myData'; 

    /* post JSON */ 
     $.post('myAjax.php', {data: myData}, 
      /* Callback function */      
      function(data){ 
      } 
     , 
     'json'); 

}); 

在myAjax.php,你可以有這樣的:

$myData = $_POST['data']; 
// do something with data 
echo json_encode($jsonResult); 

當myAjax.php Echo的響應,jQuery的回調函數會被觸發,在這裏你可以運行一些執行。

相關問題