2014-02-19 3 views
0

Я работаю над программированием 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"; 
} 
?> 

Перед отправкой на этот вопрос, у меня есть пробовал работы, но я не нашел никакого решения. Это очень важно для меня. Поэтому, пожалуйста, кто-нибудь может отладить его и рассказать мне, в чем проблема ... Спасибо заранее!

+0

Это 'if (x.readyState == 4 && x.status == 200) {', вероятно, неверно. – putvande

+0

@putvande: НЕТ это не ложь. Потому что мой php-скрипт повторяет успех. Я тестировал его с помощью alert (ajax.responseText), и в окне предупреждения показывался «успех». – Gopal1216

+0

Хорошо. Пойдите для Криса. – putvande

ответ

2

_("status").innerHTML == "AJAX worked";

должен быть

_("status").innerHTML = "AJAX worked";

одним = только

+0

говно !! это было так отстало с моей стороны. Да, сейчас он работает. Но у меня есть еще одно сомнение. Я уточню свой вопрос. Пожалуйста, проверьте это. – Gopal1216

+0

Спасибо, что ответили мне ранее, я обновил свой вопрос. Вы можете проверить это, пожалуйста? – Gopal1216

+0

Создает ли ваш PHP-скрипт пробелы, как в вашем обновлении? Проверьте, нет ли пробелов в начале и конце файла php. – Chris

1

Мое предложение заключается в использовании console.log() для отладки вашего ответа AJAX.

if(ajaxReturn(ajax) == true) { 
      console.log('Response: ', ajax.responseText); 
      if(ajax.responseText == "success"){ 

Возможно, есть некоторые ошибки в функциональности БД.

+0

Можете ли вы скопировать код и запустить его в браузере с помощью сервера? Таким образом, может быть ul точно знать, что такое ошибка. – Gopal1216

+0

У меня нет DB на моем сервере. Вы можете прочитать об использовании консоли из [здесь] (http://stackoverflow.com/questions/4743730/what-is-console-log-and-how-do-i-use-it) – Aret

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