如何将表单数据从JavaScript传递到PHP并再次传回?

时间:2011-04-21 03:55:53

标签: php javascript ajax forms

我有一个像这样的按钮:

<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()

我在概念上有错吗?我真的不知道这是否有效。

3 个答案:

答案 0 :(得分:3)

答案很长:使用AJAXtutorial here

答案 1 :(得分: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回显响应时,将触发jQuery回调函数,您可以在其中运行某些执行。

答案 2 :(得分:1)

使用AJAX,正如kpower建议的那样。或者甚至更好,尝试JQuery Ajax,虽然后来基本上提供了一种简单有趣的方式来进行ajax调用。

Here是来自sitepoint on 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;
?>