簡體   English   中英

$ .post似乎不起作用

[英]$.post doesn't seem to work

jQuery中有幾個alert()調用正在顯示,但$.post內的alert似乎沒有響應。 我已經測試了PHP代碼,它工作正常。 我認為這是我的path ,但我之前已經檢查過了。

<form id="login-form" method="post" class="form-inline" target="_top">
    <input type="text" tabindex="2"  id="username" placeholder="Username" name="email" class="inputtext">
    <input type="password" tabindex="3" id="userpass" placeholder="Password" name="pass" class="inputtext">
    <button tabindex="4" id="loginButton">Login</button>
</form>
$(document).ready(function(e) {
    $('#loginButton').click(function(e) {
        alert("start function");
        $.post('../php/login.php', {
            'username': $('#username').val(),
            'userpass': $('#userpass').val()
        }, function(data){
            alert(data);
        });
        alert("end function");
    });
});
<?php    
    require('config.php');

    $queryStmt = 'SELECT user_first, user_last FROM users WHERE user_name=:sqlIdName AND user_password=:sqlPass';
    $queryPrepare = $dba_connect->prepare($queryStmt);
    $queryPrepare->execute(array(':sqlIdName'=>$_POST['username'],':sqlPass'=>md5($_POST['userpass'])));
    $queryResult = $queryPrepare->fetch(PDO::FETCH_ASSOC);
    $queryPrepare->closeCursor();

    var_dump($queryResult);

    if ($queryResult == false)
        return false;
    else 
        return true;  
?>

我的文件結構是這樣的:

文件結構

button實際上正在提交表單,因為您沒有給它一個type="button"屬性,也沒有在click事件本身上使用preventDefault()

無論如何,更好的做法是掛鈎formsubmit事件,而不是click按鈕。 嘗試這個:

$('#login-form').submit(function(e){
    e.preventDefault(); // stop standard form submission
    $.post('../php/login.php', {
        'username': $('#username').val(),
        'userpass': $('#userpass').val()
    }, function(data){
        console.log(data);
    });
});

您可能還希望從PHP代碼返回除布爾值之外的其他內容,因為它只會被轉換為單個字符串響應。 JSON似乎最適合您的情況,請查看json_encode函數。

最后,請注意,您應始終使用console.log進行調試,因為它不會強制數據類型。

試試這個。不完全可能是它的解決方案。

php服務器端的echo字符串是這樣的

if ($queryResult == false)
echo 'false'; 
else 
 echo 'true'; 

然后將你的jquery改為

function(data){
    if(data=='true')
     {
      alert(data);
      }
      else
      {
     alert(data);
     }
      });

嘗試這個:

$(document).ready(function(e) {
    $('#loginButton').click(function(e) {
        $.post('../php/login.php', {
            functions: 'userLogin',
            username: $('#username').val(),                    
            userpass: $('#userpass').val()
        }).done(function( data ) {
            alert("Data Loaded: " + data);
        });
    });
});

暫無
暫無

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

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