简单的ajax POST不执行php函数

时间:2013-06-14 23:11:54

标签: php ajax

我试图用ajax执行php函数,但函数没有回答, 如果我使用chrome来查看网络结果生病了吗

编辑:我使用WAMP运行本地

manageusers.php
/geopedia/core
POST
200
OK
text/html
jquery-1.10.1.min.js:6
Script
850 B
625 B
7 ms
4 ms

那不应该那么有用吗?

Ajax功能

    $(document).ready(function() {
    $('#facebook').click(function() { 
        var first_name = $('#first_name').val();
        var last_name = $('#last_name').val();
        var username = $('#username').val();

        $.ajax({ 
            url: 'core/manageusers.php',
            type: 'POST',
            data: {
                facebook:first_name,
                last_name:last_name,
                username:username

            },
        });
    });
}); 

事件处理程序

if(isset($_POST['facebook'])){ 
echo("inside");
include_once('core/class.users.php');
$users = new Users();

$first_name = $_POST['first_name'];
$last_name  = $_POST['last_name'];
$username   = $_POST['username'];

$fb_user = $users->fb_user($first_name,$last_name,$username);
}

4 个答案:

答案 0 :(得分:2)

这可能会帮助您找到错误:

        $.ajax({ 
            url: 'core/manageusers.php',
            type: 'POST',
            data: {
                facebook:first_name,
                last_name:last_name,
                username:username,

            },
            success: function(mydata) {
                alert(mydata);
            }
        });
    });
}); 

事件处理程序

<?php
//if(isset($_POST['facebook'])){ 
//echo("inside");
//include_once('core/class.users.php');
//$users = new Users();

$first_name = $_POST['first_name'];
$last_name  = $_POST['last_name'];
$username   = $_POST['username'];

echo 'You sent: First: [' .$first_name. ']<br>'Last: [' .'$last_name. '] etc.';

//$fb_user = $users->fb_user($first_name,$last_name,$username);

答案 1 :(得分:0)

为什么不使用“成功”参数?

.ajax({ 
        url: 'core/manageusers.php',
        type: 'POST',
        data: {
            facebook:first_name,
            last_name:last_name,
            username:username,

        },
        success: function (result) {
             //insert some code here
        },
    });

答案 2 :(得分:0)

  1. 您的PHP没有给出任何回复;
  2. 即使它确实如此,您的Javascript代码似乎也没有使用 它;
  3. 在您的data属性的最后一部分后面有一个逗号 $.ajax致电。 IE不喜欢这样;
  4. 最后,除"inside"外,您没有给出任何回复 对于所有请求,无论成功与否,您都没有做任何事情来处理 您的Javascript代码中的响应。

答案 3 :(得分:0)

修改了之前删除的答案的重新发布:

如果您在本地运行此脚本,请尝试在POST请求中将dataType参数设置为text或json:$。ajax({url:'core / manageusers.php',type:'POST',dataType:'text ',数据:{.......

@Alfie是的我实际上是在本地运行的。好的,你提到它。我试图添加dataType,json和text但没有运气。 - 戴蒙德

我过去曾经做过类似的噩梦。它取决于网络安全功能:跨域策略文件。维基:http://en.wikipedia.org/wiki/Same_origin_policy

我发现在IE中(但在测试时不是firefox),在jQuery请求期间将dataType设置为'text'(如上所述)。我还使用了其他人建议的success:...返回参数。否则,请尝试创建一个crossdomain.xml文件并将其放在根目录中。

'松散'(允许一切)版本看起来像:

`<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all" />
    <allow-access-from domain="*" to-ports="*" />
    <allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>`