php怎么接收jquery ajax传来的值?

2016-07-07 15:00 来源:www.chinab4c.com 作者:ecshop专家



二次开发是遇到一点麻烦,因为之前用的jquery ajax都是太少,对于传值、接收又不开窍了!求高手指点
ajax.dwt
  1. <a id="addr_modify"><img src="images/dify.jpg"/></a>
复制代码


ajax.js

  1. $('#addr_modify').click(function(){

  2. $.ajax({
  3. type: "POST",
  4. url: "flow_ajax.php?act=c**ignee_list",
  5. cache: false,
  6. data: "&m=" + Math.random(),
  7. beforeSend:function(){$('#addr_modify').html('[获取中...]')},
  8. success:function(data){
  9. re = $.evalJSON(data);
  10. alert(re.message);
  11. if(re.error == 1)
  12. {
  13. alert(re.message);
  14. window.location.href="flow.php?step=cart" + "&m=" + Math.random();
  15. return;
  16. }
  17. else if(re.error == 2)
  18. {
  19. alert(re.message);
  20. window.location.href="flow.php?step=c**ignee";
  21. return;
  22. }

  23. $('#addr_modify').hide();
  24. $('#addr_okbox').hide();
  25. $('#addr_editbox').show();
  26. // $('#addr_editbox').html(re.content_list);
  27. // $('#addr_edit_table').html(re.content_table);
  28. }
  29. })
  30. });
复制代码



flow_ajax.php

  1. define('IN_ECS', true);

  2. require(dirname(__FILE__) . '/includes/init.php');
  3. require(ROOT_PATH . 'includes/cls_json.php');

  4. if (!isset($_REQUEST['act']))
  5. {
  6. /* 只有在没有提交评论内容以及没有act的情况下才跳转 */
  7. ecs_header("Location: flow.php\n");
  8. exit;
  9. }
  10. $json= new JSON;
  11. $result = array('error' => 0, 'message' => '', 'content' => '');

  12. $result['message'] = '已接受请继续';
  13. echo $json->encode($result);

  14. if ($_REQUEST['act'] == 'c**ignee_list')
  15. {
  16. /*
  17. * 检查用户是否选择匿名购物
  18. */
  19. if (isset($_REQUEST['direct_shopping']))
  20. {
  21. $_SESSION['direct_shopping'] = 1;
  22. }

  23. /*
  24. * 检查用户是否已经登录
  25. * 如果用户已经登录了则检查是否有默认的收货地址
  26. * 如果没有登录则跳转到登录和注册页面
  27. */
  28. if (empty($_SESSION['direct_shopping']) && $_SESSION['user_id'] == 0)
  29. {
  30. /* 用户没有登录且没有选定匿名购物,转向到登录页面 */
  31. $result['error']= 1;
  32. $result['message'] = '对不起,您没有登录或者您未选择匿名购物!';
  33. echo $json->encode($result);
  34. exit;
  35. }
  36. }
  37. echo $json->encode($result);
复制代码



为什么我在页面上接收不到任何数据呢?


求解,另外还有一个问题是 data: "&m=" + Math.random(),什么意思?

呵呵 我是拿别人的ajax过来修改的

回答:
没看懂

这个是清除缓存的意思。很简单.
AJAX你可以通过,POST,GET,JSON格式来传递数据。具体的你可以参考本文
http://www.chinab4c.com/html/ecshopercikaifajiangzuo/201012/18739.html

Math.random()的意思是取个随机处,在这里因为ajax每次提交会存缓存,加个随机数可以避免每次提交相同的时候服务端直接将缓存返回


嗯 懂了 谢谢 已经解决勒 等我弄好后给大家分享一个强大功能


re = $.evalJSON(data);
改成
var re = $.parseJSON(data);

解决就好~