2016-07-31 2 views
0

Я новичок в StackOverflow, веб-разработке, и у меня мало времени для этого задания, поэтому я приношу свои извинения, если немного отстаю в понимании словарного запаса веб-разработки и любые ответы или советы. У меня возникли проблемы с вызовом другого php-файла через ajax. index.php:Функция успешной работы AJAX работает, но файл не запущен

<!--------------------------- 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); 
} 

Я просто пытаюсь получить файл "userlogin.php" для запуска через AJAX. Я использую эту функцию в Chrome. Я слышал, что есть проблема с использованием AJAX для локальных файлов, но я пробовал эту вещь -access-file-from-files, и это не помогло. Я попытался запустить его в FireFox и Internet Explorer, и это все равно не помогает. Я уверен, что все в одном каталоге. Я использую онлайн-серверный сервер, чтобы сделать все это. У меня была боль в голове в течение бесконечных часов, любая помощь была бы высоко оценена.

+0

Включили вы все здесь ваш код? Ваша функция ajax, похоже, не передает данные какой-либо формы. Вы оставили это из своего примера? Если вы вернули его, поскольку это запутывает. Если это весь ваш код, вам необходимо передать данные формы. В настоящее время вы не публикуете никаких данных. –

+0

Флаг на хроме, хром должен быть '--allow-file-access-from-files'. Строка 'html' в' .append() 'не представляется правильно конкатенацией, чтобы избежать синтаксической ошибки. Ожидаемый результат 'if ($ (" # Register "). Click())'? – guest271314

ответ

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/

+0

Он запускает сообщение об успешном завершении, но он все еще не работает с файлом userlogin.php :( – Aura

+0

Вы пытаетесь использовать данные 'POST' для' userlogin.php'? – guest271314

+0

У меня возникли проблемы с пониманием разницы между «Постом», и «Get», поэтому я просто объясню, что я пытаюсь сделать в userlogin.php. Я просто хочу проверить имя пользователя и пароль, которые пользователь вводит в «входы» в функции OpenRegister. – Aura

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 
    } 
?> 
+0

Это происходит с функцией успеха, но по-прежнему не запускает файл php. – Aura

+0

Оберните входы с помощью

и введите код, который я вам дал, не забудьте добавить (id) в форму и изменить значение $ ("# formID"). Serialize(); в соответствии с формой (id) – developerbh

+0

Я думаю, что сделал, как вы сказали: Результат был вход появляться – Aura

Смежные вопросы