Php Ajax代码无响应

Php Ajax代码无响应,php,javascript,mysql,sql,ajax,Php,Javascript,Mysql,Sql,Ajax,嗨,我在使用JavaScript编写ajax代码时遇到了问题。该函数称为studentReqHandler,带有按钮onclick函数,所有内容都在echo中。这是函数studentReqHandler的代码: echo "<script type='text/javascript'> function studentReqHandler(action,id,email,elem){ _(elem).innerHTML = 'processing ...'; var ajax

嗨,我在使用JavaScript编写ajax代码时遇到了问题。该函数称为studentReqHandler,带有按钮onclick函数,所有内容都在echo中。这是函数studentReqHandler的代码:

  echo "<script type='text/javascript'>
function studentReqHandler(action,id,email,elem){

_(elem).innerHTML = 'processing ...';
var ajax = ajaxObj('POST', 'verifying.php');
ajax.onreadystatechange = function() {
    if(ajaxReturn(ajax) == true) {
        if(ajax.responseText == 'accept_ok'){
            _(elem).innerHTML = '<b>User Verified!</b><br />';
        } else {
            _(elem).innerHTML = ajax.responseText;
        }
    }
}
ajax.send('action='+action+'&id='+id+'&email='+email);
}
</script>
最后一步是php,以使其工作:

   if (isset($_POST['action']) && isset($_POST['id'])&& isset($_POST['email'])){
$id = preg_replace('#[^0-9]#', '', $_POST['id']);
$email = $_POST['email'];


if($_POST['action'] == "accept"){

    $sql = "UPDATE profile SET verified='1' WHERE id='$id' AND email='$email' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
        mysqli_close($db_conx);

        echo "accept_ok";
        exit();
    }

    } 

有人能找出为什么这不起作用吗

我粘贴了这段代码,它可以工作:

最小的错误是,javascript字符串中有一些混乱的引号

<?php
/* using this at the top to check what happens when it posts. */

if (isset($_POST['action']) && isset($_POST['id'])&& isset($_POST['email'])){
    $id = preg_replace('#[^0-9]#', '', $_POST['id']);
    $email = $_POST['email'];


    if($_POST['action'] == "accept"){

    /* I commented out the query, so you must make sure that works right */    
    $sql = "UPDATE profile SET verified='1' WHERE id='$id' AND email='$email' LIMIT 1";
    //$query = mysqli_query($db_conx, $sql);
    //    mysqli_close($db_conx);

        echo "accept_ok";
        exit();
    }

 } 

/* some default values. You need to make sure you get these from somewhere.*/
$id=3;
$email="oo@oooo.com";

/* ELEMENT changes when I click the button */ 
echo "Div Element <div id='element'>ELEMENT</div>  area<br><br>";
?>
<script type='text/javascript'>
function studentReqHandler(action,id,email,elem) {

    /* I used the basic document element locator */
    document.getElementById('element').innerHTML = 'processing ...';

    /* I posted to itself this time. */
    var ajax = ajaxObj('POST', 'ajax.php');
    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
            if(ajax.responseText == 'accept_ok'){
                document.getElementById('element').innerHTML = '<b>User Verified!</b><br />';
            } else {
                document.getElementById('element').innerHTML = ajax.responseText;
            }
        }
    }
    ajax.send('action='+action+'&id='+id+'&email='+email);
}

function ajaxObj( meth, url ) {
    var x = new XMLHttpRequest();
    x.open( meth, url, true );
    x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    return x;
}

function ajaxReturn(x){
    if(x.readyState == 4 && x.status == 200){
        return true;    
    }
}


</script>

/* There were too many quotes and \'s in the original button. */ 
<br>The Button<br>
<?php 
    echo "<button onclick=\"studentReqHandler('accept','$id','$email','user_info_$id') \">accept</button>";
?>

始终清理用户输入!!您是否正在使用firebug/developer工具?什么不起作用?php是否返回错误?你查过日志了吗?您是否收到客户端错误?现在发生的只是元素更改为accept_ok。php不会返回accept_ok
   if (isset($_POST['action']) && isset($_POST['id'])&& isset($_POST['email'])){
$id = preg_replace('#[^0-9]#', '', $_POST['id']);
$email = $_POST['email'];


if($_POST['action'] == "accept"){

    $sql = "UPDATE profile SET verified='1' WHERE id='$id' AND email='$email' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
        mysqli_close($db_conx);

        echo "accept_ok";
        exit();
    }

    } 
<?php
/* using this at the top to check what happens when it posts. */

if (isset($_POST['action']) && isset($_POST['id'])&& isset($_POST['email'])){
    $id = preg_replace('#[^0-9]#', '', $_POST['id']);
    $email = $_POST['email'];


    if($_POST['action'] == "accept"){

    /* I commented out the query, so you must make sure that works right */    
    $sql = "UPDATE profile SET verified='1' WHERE id='$id' AND email='$email' LIMIT 1";
    //$query = mysqli_query($db_conx, $sql);
    //    mysqli_close($db_conx);

        echo "accept_ok";
        exit();
    }

 } 

/* some default values. You need to make sure you get these from somewhere.*/
$id=3;
$email="oo@oooo.com";

/* ELEMENT changes when I click the button */ 
echo "Div Element <div id='element'>ELEMENT</div>  area<br><br>";
?>
<script type='text/javascript'>
function studentReqHandler(action,id,email,elem) {

    /* I used the basic document element locator */
    document.getElementById('element').innerHTML = 'processing ...';

    /* I posted to itself this time. */
    var ajax = ajaxObj('POST', 'ajax.php');
    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
            if(ajax.responseText == 'accept_ok'){
                document.getElementById('element').innerHTML = '<b>User Verified!</b><br />';
            } else {
                document.getElementById('element').innerHTML = ajax.responseText;
            }
        }
    }
    ajax.send('action='+action+'&id='+id+'&email='+email);
}

function ajaxObj( meth, url ) {
    var x = new XMLHttpRequest();
    x.open( meth, url, true );
    x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    return x;
}

function ajaxReturn(x){
    if(x.readyState == 4 && x.status == 200){
        return true;    
    }
}


</script>

/* There were too many quotes and \'s in the original button. */ 
<br>The Button<br>
<?php 
    echo "<button onclick=\"studentReqHandler('accept','$id','$email','user_info_$id') \">accept</button>";
?>