AJAX成功函数有效,但文件没有运行

时间:2016-07-31 23:18:20

标签: javascript php jquery html ajax

我是StackOverflow,Web开发的新手,而且我没有按时完成这项任务,所以如果我在理解网站开发词汇和任何答案或技巧方面有点慢,我会道歉。我通过ajax调用另一个php文件时遇到问题。 的index.php:

<!--------------------------- HTML STARTUP ----------------------------------->

<!DOCTYPE html>
<html>
    <head>        
        <link type="text/css" rel="stylesheet" href="finalproject.css" />

        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
        <script type="text/javascript" src="finalproject.js"></script>

        <title>Final Project</title>
    </head>
    <body>

<!--------------------------- LOGIN ------------------------------------------>

<?php
    require_once 'dbconnection.php';

//----------------------- CREATE USERS TABLE -----------------------------------

$userspass = "CREATE TABLE usersPass (
    userID VARCHAR(60),
    password VARCHAR(60)
);";

$connected->query($userspass);

$selectAllInfo = "SELECT * FROM usersPass;";
$connected->query($selectAllInfo);

//-------------------------- LOG IN OR REGISTER --------------------------------
?>
    <form id="trial"><button onclick="OpenRegister()">Sign Up!</button>
    <script>
$(document).on("click" , "#Register", function(e)
    {
       var datastring = $("#trial").serialize();
        $.ajax({
            type: 'POST',
            url: 'userlogin.php',
            data: datastring,
            success: function(data){
            alert('Sign Up function is a success!');
        }
    });
    e.preventDefault();
});
        </script></form>
    <br/><br/>
    <button onclick="InputInfo()">Login</button> 

<?php        
$connected->close();
?>

</body>
</html>

这是函数调用时的JavaScript。 finalproject.js:

/*jslint browser: true*/
/*global $, jQuery, alert*/

function OpenRegister() {
'use strict';

$('form').append("<div id=SignInContainer>
<span style='font-size: 20px'>UserID</span>
<input type='text' name='UserID' value='Type userID here...'>
<span style='font-size: 20px'>Password</span>
<input type='text' name='UserID' value='Type password here...'>
<button id='Register'>Submit</button>
</div>");
}

$(document).ready(function () {
    'use strict';

    $(document).on('focus', 'input', function () {
        $('input').focus(function () {
            $(this).val('');
        });
    });
});

这是我试图加载的php文件。 userlogin.php:

<?php echo "If this displays, you win." ?>

dbconnection.php

<?php
$connected = new mysqli('localhost', 'Username', 'Password', 'Username');
mysqli_select_db($connected, 'cferna50');

// Check connection
if ($connected->connect_error) {
    die("Connection failed: " . $connected->connect_error);
}

我只是想通过AJAX运行&#34; userlogin.php&#34;文件。我在Chrome上运行这个东西。我听说在本地文件上使用AJAX有点问题,但是我尝试了--access-file-from-files的东西,它没有帮助。我尝试在FireFox和Internet Explorer上运行它,它仍然没有帮助。我确定我在同一目录中拥有所有内容。我使用在线学校服务器来做这一切。我已经无休止地伤害了我的头脑,任何帮助都会受到极大的赞赏。

2 个答案:

答案 0 :(得分:1)

仅仅因为您没有通过该方法传递(数据),您Serialize数据或单独传递它们,我想您将使用第一种方法来节省时间

<script>
    $(document).on("submit","#loginForm", function(e)
        {
           var datastring = $("#loginForm").serialize();
            $.ajax({
                type: 'POST',
                url: 'userlogin.php',
                data: datastring,
                success: function(data){
                 alert(data);
                //or
                //alert('Sign Up function is a success!');
            },
                error: function(){
                 alert("error handling");
            }
        });
        e.preventDefault();
    });
</script>

HTML

<form id="loginForm" method="POST">
  <input type="text" name="userid" id="userid" placeholder="user ID" />
  <input type="text" name="password" id="password" placeholder="Password" />
  <button type="submit" >Submit</button>
</form>

PHP

<?php
if(isset($_POST['userid'])){
   $username = $_POST['userid'];
   $pass = $_POST['password'];

   //do your magic now
  }
 ?>

答案 1 :(得分:0)

html删除.append()

时纠正if($("#Register").click())字符串的连接
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
  function SignUp() {
  if ($("[name=username]").val().length 
     && $("[name=password]").val().length) {
    $.ajax({
      type: 'POST',
      url: 'userlogin.php',
      data: {
          username: $("[name=username]").val(),
          password: $("[name=password]").val()
      },
      success: function(data) {
        alert('Sign Up function is a success!');
      },
      error: function() {
        alert("stacsnippets success")
      }
    });
    }
  }
</script>
<script>
  function OpenRegister() {
    'use strict';

    $('body').append("<div id=SignInContainer>" 
      + "<span style='font-size: 20px'>UserID</span>" 
      + "<input type='text' name='username' placeholder='Type userID here...'>" 
      + "<span style='font-size: 20px'>Password</span>" 
      + "<input type='password' name='password' placeholder='Type password here...'>" 
      + "<button onclick='SignUp()' id='Register'>Submit</button>" 
      + "</div>");
  }
</script>
<button onclick="OpenRegister()">Sign Up!</button>

PHP

if (isset($_POST["username"]) && isset($_POST["password"])) {
  // do username, password validation stuff here
}

jsfiddle https://jsfiddle.net/qnrnn5b5/