簡體   English   中英

嘗試使用Ajax調用php函數不起作用

[英]Trying to call php function with ajax doesn't work

我正在嘗試將一些變量傳遞給使用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並返回成功消息,但是沒有其他任何事情發生,甚至警報('getting something')都應該運行,而無論參數如何。 打印出數據會得到[object Object],我什至不知道這意味着什么。 請幫忙!

您正在使用GET而不是POST,因此在該行下

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

應該得到,而不是像發布那樣發布

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

由於您的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;
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM