javascript — EOF / Не удалось загрузить ошибку при вызове PHP-файла с AJAX

Видимо мои запросы POST отменяются?
http://puu.sh/d73LC/c6062c8c07.png

а также, объект mysqli_result имеет все нулевые значения, когда я запрашиваю базу данных с помощью запроса select:

object(mysqli_result)[2]
public 'current_field' => null
public 'field_count' => null
public 'lengths' => null
public 'num_rows' => null
public 'type' => null

вот мой файл php:

<?php

$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "uoitlol";
$name = "test1"; //this should be $_POST['name']; test1 is just to test if it works.
$err = false;

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_errno > 0) {
echo 'connerr';
die();
}
$sql = "INSERT INTO summoners (name) VALUES (?)";

$getname = "SELECT name FROM summoners";

$result = $conn->query($getname);
while ($row = $result->fetch_assoc()) {
echo 'name : ' . $row['name'];
if ($row['name'] === $name) {
echo 'error, name exists';
$err = true;
}
}

$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $name);

if ($err === false) {
if (!$stmt->execute()) {
echo 'sqlerr';
} else {
echo 'success';
}
}

$stmt->close();
mysqli_close($conn);

вот мой javascript-файл, который вызывает php-файл с помощью ajax всякий раз, когда я нажимаю кнопку отправить в моей форме (в другом html-файле)

$(document).ready(function () {
$("#modalClose").click(function () {
document.getElementById("signupInfo").className = "";
document.getElementById("signupInfo").innerHTML = "";
});
$("#formSubmit").click(function () {
var name = $("#name").val();
// Returns successful data submission message when the entered information is stored in database.
var dataString = {'name' :name};
if (name === '')
{
document.getElementById("signupInfo").className = "alert alert-danger";
document.getElementById("signupInfo").innerHTML = "<b>Please enter a summoner name!</b>";
}
else
{
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "submitName.php",
data: dataString,
cache: false,
success: function (msg) {
if (msg === 'error'){
document.getElementById("signupInfo").className = "alert alert-danger";
document.getElementById("signupInfo").innerHTML = "<b>That summoner name is already in the database!</b>";
} else if (msg === 'sqlerror'){
document.getElementById("signupInfo").className = "alert alert-danger";
document.getElementById("signupInfo").innerHTML = "<b>SQL error, contact the administrator.</b>";
} else if (msg === 'success'){
document.getElementById("signupInfo").className = "alert alert-success";
document.getElementById("signupInfo").innerHTML = "<b>Summoner successfully added!</b>";
}
}
});
}
return false;
});
});

Я получаю эти ошибки каждый раз, когда нажимаю кнопку, которая отправляет мою форму:

Не удалось загрузить ресурс: неожиданный конец файла с сервера (19: 41: 35: 538 | ошибка, сеть)
в public_html / submitName.php

Не удалось загрузить ресурс: неожиданный конец файла с сервера (19: 41: 35: 723 | ошибка, сеть)
в public_html / submitName.php

Не удалось загрузить ресурс: неожиданный конец файла с сервера (19: 41: 36: 062 | ошибка, сеть)
в public_html / submitName.php

Я использую Netbeans IDE, если это имеет значение.

puu.sh/d6YXP/05b5f3dc06.png — снимок экрана среды IDE с ошибками журнала вывода.

0

Решение

Удалить это из вашего submitName.phpЕсли в нем действительно нет HTML.

<!DOCTYPE html>

Если в нем есть HTML, сделайте это вместо этого.

<?php
//your PHP code//
?>
<!DOCTYPE html>
//your HTML here//
</html>

Кроме того, если submitName.php не содержит HTML, убедитесь, что после пустой строки нет ?> внизу.

РЕДАКТИРОВАТЬ: Что касается вашего запроса, попробуйте этот код.

if (!empty($name) { //verify the form value was received before running query//
$getname = "SELECT name FROM summoners WHERE name = $name";

$result = $conn->query($getname);
$count = $getname->num_rows; //verify a record was selected//
if ($count != 0) {
while ($row = $result->fetch_assoc()) {
echo 'name : ' . $row['name'];
if ($row['name'] === $name) {
echo 'error, name exists';
$err = true;
}
}
} else {
echo "no record found for name";
exit;
}
}
1

Другие решения

Брось ?> в конце файла php и вместо использования var dataString = 'name=' + name; используйте это вместо:

var data = { "name" : name};

jQuery автоматически сделает за вас грязные вещи, так что вам не нужно будет специальное выделение текста и прочее.

Насколько я могу помочь без каких-либо файлов журналов и просто быстрого просмотра вашего кода.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector