如何将表单数据从JavaScript传递到PHP,然后再传递回来?
我有一个这样的按钮:如何将表单数据从JavaScript传递到PHP,然后再传递回来?,php,javascript,ajax,forms,Php,Javascript,Ajax,Forms,我有一个这样的按钮: <a href="#" onclick="do_something()">Click Me</a> 和这样的图像字段(或YouTube嵌入,或需要更改值的内容): “/> 当用户单击该按钮时,do_something()需要从PHP文件发送数据,该文件处理一个数组(在本例中为JSON,但不相关),并返回下一个值 基本上,当您打开页面时,get\u src()包含数组的第一项,单击do\u something()将信息发送到PHP表单以接收数组
<a href="#" onclick="do_something()">Click Me</a>
和这样的图像字段(或YouTube嵌入,或需要更改值的内容):
“/>
当用户单击该按钮时,do_something()
需要从PHP文件发送数据,该文件处理一个数组(在本例中为JSON,但不相关),并返回下一个值
基本上,当您打开页面时,get\u src()
包含数组的第一项,单击do\u something()
将信息发送到PHP表单以接收数组中的另一项,该项反过来将数据发送回文件,并更新get\u src()
我在概念上有什么问题吗?我真的不知道它是不是这样工作的。详细回答:使用()使用
AJAX
,正如kpower所建议的。或者更好的是,尝试一下,尽管稍后基本上提供了一种简单而有趣的方法来进行AJAX调用
是sitepoint关于jQueryAjax的一个不错的教程
编辑
在服务器端,要将一些数据返回给调用的AJAX方法,可以使用函数。它从数据中生成一个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>
第一个标记库示例-EL函数
如果您像上面那样回显字符串,那么整个内容,包括所有HTML标记和其他内容,都将作为ajax调用的响应发送。如果您只需要根据某个请求从数据库传递一些数据,例如一些事务量,请改为-
<?php
// do your processing, but print/echo nothing
..........
// Convert your result into a json_string
..........
echo $your_json_response_string;
?>
使用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回调函数将被触发,您可以在其中运行一些执行。是的,这就是我一直在使用的。但是,我不确定在php方面该做什么。我使用
$.get('process.php',function(data){$('#results').html(data);}获得结果;
但是在过程结束时我该怎么做。php
?我是否应该使用echo
?@altrier:查看编辑。如果您仍然有问题,请回复。
$myData = $_POST['data'];
// do something with data
echo json_encode($jsonResult);