2011-04-21 130 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的回调函数会被触发,在这里你可以运行一些执行。

相关问题