如何在JavaScript和PHP之间传递表单数据并返回?

3

我有一个按钮,如下所示:

<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个回答

3
使用jQuery,您可以将Ajax post绑定到一个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 的回调函数将被触发,在此您可以运行一些操作。

3

1

使用kpower建议的AJAX。或者更好的是,尝试一下JQuery Ajax,后者基本上提供了一种简单而有趣的方式来进行ajax调用。

这里是sitepoint关于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;
?>

是的,这就是我一直在处理的内容。但是,我不确定在PHP方面该怎么做。我使用$.get('process.php', function(data) { $('#results').html(data); });获取结果,但是在process.php的结尾处该怎么做呢?我应该只是使用echo吗? - altrier
@altrier:请查看修改后的内容。如果您仍然有困难,请回复评论。 - MD Sayem Ahmed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接