试图用ajax调用php函数不起作用

时间:2014-12-13 09:21:38

标签: javascript php jquery ajax

我正在尝试将一些变量传递给带有ajax

的php文件

$(document).ready(function(){
        $("button").click(function(){
            var id = this.id;
            var name=this.name;
            console.log(id+" "+name);
            $.ajax({
            		    type: 'GET',
            		    url: 'utility.php',
            		    dataType: 'text',
            		    data: {id: id, name: name},
            		    success: console.log('aa'),
            		    //error: function( jqXhr, textStatus, errorThrown ){ console.log( errorThrown ); },
            		    //complete: alert(id+' '+name)
            }); // Ajax Call
        }); //event handler
    }); //document.ready
<?php
warning('getting something');
if($_GET['id'] && $_GET['name']){
	$id=$_GET['id'];
	$name=$_GET['name'];
	if($id=='delete'){
		my_remove($name);
	}
	if($id=='modify'){
		retrieve($name);
		my_remove($name);
		modify($name);
	}
}
else {
	warning('unable to get information');
}

function my_remove($name){
	warning('deleting');
	//mysqli_query($con,"DELETE FROM `book`.`".$page."` WHERE `".$page."`.`name` =\'".$name."\'");
	//echo "<script type='text/javascript'>alert('$name');</script>";
}

function modify($name){
	warning('modified');
}

function retrieve($name){
	warning('fetching');
}

function warning($message){
	echo "<script type='text/javascript'>alert('$message');</script>";
}

?>

.js部分似乎运行顺畅,它设置了名称和id,并且返回成功消息,但没有其他任何事情发生,甚至连警报(“得到的东西”)都应该运行而不管参数如何。 打印出数据给出了[对象],我甚至不确定它是什么意思。 请帮忙!

2 个答案:

答案 0 :(得分:1)

你正在使用GET而不是POST

 if($_GET['id'] && $_GET['name']){

应该得到,而不是发布你的

$id=$_GET['id'];
$name=$_GET['name'];

答案 1 :(得分:0)

由于您的php脚本在后台运行ajax调用,我认为该页面中的警报代码不起作用。而是尝试将纯文本返回到ajax函数并在那里提醒它

$(document).ready(function(){
        $("button").click(function(){
            var id = this.id;
            var name=this.name;
            console.log(id+" "+name);
            $.ajax({
                        type: 'GET',
                        url: 'utility.php',
                        dataType: 'text',
                        data: {id: id, name: name},

            }).done(function(text){
               alert(text);
            }); // Ajax Call
        }); //event handler
    }); //document.ready

和你的php文件一样。我改变了你的warning功能

<?php
warning('getting something');
if($_GET['id'] && $_GET['name']){
    $id=$_GET['id'];
    $name=$_GET['name'];
    if($id=='delete'){
        my_remove($name);
    }
    if($id=='modify'){
        retrieve($name);
        my_remove($name);
        modify($name);
    }
}
else {
    warning('unable to get information');
}

function my_remove($name){
    warning('deleting');
    //mysqli_query($con,"DELETE FROM `book`.`".$page."` WHERE `".$page."`.`name` =\'".$name."\'");
    //echo "<script type='text/javascript'>alert('$name');</script>";
}

function modify($name){
    warning('modified');
}

function retrieve($name){
    warning('fetching');
}

function warning($message){
    echo $message;
}

?>