$ .post似乎不起作用

时间:2016-04-26 06:55:17

标签: javascript php jquery ajax

jQuery中有几个alert()调用正在显示,但alert内的$.post似乎没有响应。我已经测试了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;  
?>

我的文件结构如下:

File Structure

3 个答案:

答案 0 :(得分:2)

button实际上是正常提交​​表单,因为您没有给它type="button"属性,也没有在点击事件本身上使用preventDefault()

无论如何,更好的做法是挂钩submit的{​​{1}}事件,而不是按钮的form。试试这个:

click

您可能还希望从PHP代码返回布尔值以外的其他内容,因为它只会被转换为单个字符串响应。 JSON似乎最适合您的情况,请查看$('#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); }); }); 函数。

最后,请注意,您应始终使用json_encode进行调试,因为它不会强制数据类型。

答案 1 :(得分:1)

试试这个。不完全可能是它的解决方案。

php服务器端的回显字符串就像这样

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

然后将您的jquery更改为

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

答案 2 :(得分:0)

试试这个:

Public Function Import2Columns()
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "ProjektDelledning", "C:\Users\JGJ\Desktop\Sanering.xlsx", True, "Concatenate!L:M" 
End Function