У меня проблема с получением данных из моего PHP-скрипта. Я отправляю данные формы через AJAX в PHP, но кажется, что значения пусты, но в моем URL-адресе установлены значения. Итак, почему я не возвращаю свои значения в JavaScript.
Вот мой код:
<!doctype html>
<html>
<head>
<title>Schachbrett</title>
<meta charset = "utf-8">
<style>
table {
width: 800px;
height: 800px;
border: 1px solid black;
}
table tr:nth-child(even) td:nth-child(even), table tr:nth-child(odd) td:nth-child(odd) {
width: 100px;
height: 100px;
background-color: black;
}
</style>
<script>
window.onload = function() {
document.getElementById("button").onclick = pre_generate;
}
function pre_generate() {
request = new XMLHttpRequest();
var columns = document.getElementById("columns").value;
var rows = document.getElementById("rows").value;
var url= "chess2.php?columns = "+columns+"&rows = "+rows;
request.onreadystatechange = generate;
request.open("GET", url, true);
request.send(null);
}
function generate() {
if (request.readyState === 4 && request.status === 200) {
alert(request.responseText);
}
else {
}
//
/*for(var i=0; i<=8; i++) {
document.getElementsByTagName("table").innerHTML = "<tr id='"+i+"'></tr>";
for(var j=0; j<=8; j++) {
document.getElementsById(i).innerHTML = "<td></td>";
}
}*/
//document.getElementsByTagName("table").css("width", 100*columns+"px").css("height", 100*rows+"px");
}
</script>
</head>
<body>
<form action = "" method = "">
<input id = "columns" type = "text" name = "columns" placeholder = "Zeilen">
<input id = "rows" type = "text" name = "rows" placeholder = "Spalten">
<input id = "button" type = "submit" name = "send" value = "Generieren">
</form>
<table>
</table>
</body>
</html>
PHP:
<?php
if (isset($_GET['columns']) && isset($_GET['rows'])) {
$cols = $_GET['columns'];
$rows = $_GET['rows'];
echo $cols . "|" . $rows;
}
/*else {
alert("Bitte geben Sie die Anzahl der Spalten und Zeilen ein!");
}*/
?>
Спасибо за вашу помощь. Я действительно не знаю, что с этим не так, потому что я уже сделал еще один урок в этом стиле, и он работал просто отлично.
Извиняюсь неправильно написал. Я изменил его в коде, но он все равно не работает.
еще одна маленькая загвоздка: var url= "chess2.php?columns = "+columns+"&rows = "+rows; не забывайте & между переменными
следите за консолью на наличие ошибок .. потому что я думаю, что вы получите request undefined .. поэтому после внесения изменений, как упоминалось в предыдущих комментариях .. сначала используйте request.onreadystatechange = function(){ // Check the status Here }, прежде чем поместить его в другую функцию generate .. Если вы получили ожидаемое предупреждение из него вы можете проверить статус в другой функции
request.readyState равен 4, а request.status равен 200. Все в порядке, но request.responseText по-прежнему пуст. Я не знаю, может быть, мой сервер делает странные вещи или что-то в этом роде.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш URL -
"chess2.php?cols = "+columns+"rows = "+rows;, и все же вы пытаетесь получить одно значение как$_GET['columns']-cols!=columns.