Я работаю над программированием AJAX, в котором у меня есть небольшая проблема. В приведенном ниже коде я считаю, что мой php-скрипт не повторяет успех. Я пытаюсь вставить значения в таблицу базы данных. Соответственно, значения вставляются в таблицу. У меня есть элемент span на моей странице, который по умолчанию ничего не показывает. Но если скрипт php повторяет успех, он должен показать «AJAX работал». Если мой PHP-скрипт не повторяет «успех», он должен показать, что «AJAX не работает». Но он показывает, что «AJAX не работает», хотя значения вставляются. Если бы я не включил код базы данных, то мой скрипт повторяет успех, а элемент span показывает «AJAX работал». Но если я включаю код базы данных, я думаю, что это не повторяет успех, а элемент span показывает, что «AJAX не работает». Ниже мой код:AJAX вызов php не работает
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/main.js"></script>
<script src="js/ajax.js"></script>
<script>
function insert(){
var elem = _("myTextArea").value;
var result = _("result");
result.innerHTML += elem + "<br>";
elem.value = "";
var ajax = ajaxObj("POST", "dynamicdiv_parser.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText == "success"){
_("status").innerHTML == "AJAX worked";
}
else{
_("status").innerHTML == "AJAX didn't work";
}
}
}
ajax.send("post="+elem+"&type=a");
}
</script>
</head>
<body>
<form name="dynamicdivform" id="dynamicdivform" onsubmit="return false;">
<p id="result"></p>
<textarea name="myTextArea" id="myTextArea" cols="100" rows="14"></textarea><br>
<input type="button" id="postBtn" value="POST" onClick="insert()">
<span id="status"></span>
</form>
</body>
Я включил два файла JavaScript в моей программе, которые являются main.js
и ajax.js
. Ниже приведен их код.
Это main.js
:
function _(x){
return document.getElementById(x);
}
Это ajax.js
:
function ajaxObj(meth, url) {
var x = new XMLHttpRequest();
x.open(meth, url, true);
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
return x;
}
function ajaxReturn(x){
if(x.readyState == 4 && x.status == 200){
return true;
}
}
Это мой PHP скрипт, который вторя назад успех
<?php
if(isset($_POST["post"])){
include_once("php_includes/dbconsampledb.php");
$data = $_POST['post'];
$type = $_POST['type'];
$sql = "INSERT INTO posts(data, type)
VALUES('$data','$type')";
$query = mysqli_query($db_conx, $sql);
echo "success";
}
?>
Перед отправкой на этот вопрос, у меня есть пробовал работы, но я не нашел никакого решения. Это очень важно для меня. Поэтому, пожалуйста, кто-нибудь может отладить его и рассказать мне, в чем проблема ... Спасибо заранее!
Это 'if (x.readyState == 4 && x.status == 200) {', вероятно, неверно. – putvande
@putvande: НЕТ это не ложь. Потому что мой php-скрипт повторяет успех. Я тестировал его с помощью alert (ajax.responseText), и в окне предупреждения показывался «успех». – Gopal1216
Хорошо. Пойдите для Криса. – putvande