2015-08-11 19 views
0

Мне нужно передать некоторое значение файлу PHP, и из этого возвратите некоторые значения в исходный скрипт. Я написал этот код.Функция Ajax всегда возвращает ошибку

$(document).ready(function() { 
    var value = $('#myId').val(); 
    $('.myClass').click(function() { 
     var request = $.ajax({ 
      type: 'POST', 
      url: 'getinfo.php', 
      data: {fileIs: value}, 
      success: function(data) { 
       alert(data); 
      }, 
      error: function() { 
       alert("Error"); 
      } 
     }); 

     }); 
    }); 

getinfo.php, как:

mysql_connect("localhost", "root", "") or die(mysql_error()); 
mysql_select_db("my_db") or die(mysql_error()); 

if(isset($_REQUEST['fileIs'])) { 
    $file = mysql_real_escape_string(htmlentities($_POST['fileIs'])); 
    $value = mysql_query("SELECT * FROM files WHERE filename = '".$file."' "); 
    while($row = mysql_fetch_array($value)) { 
     echo $row['fileTitle']; 
    }  
} 

Когда я исполняю функции PHP скрипт AJAX всегда возвращает предупреждение пишет "Ошибка", которая исчезнет автоматически. Как я могу исправить эту проблему? Моя цель - отправить содержимое переменной «значение» в файл PHP и получить от нее ответ, чтобы содержимое в базе данных соответствовало содержанию.

+1

Откройте консоль и проверить на наличие ошибок, и do 'console.log (arguments)' внутри обратного вызова ошибки, чтобы узнать, в чем проблема? – adeneo

+0

Вы уверены, что цикл while в вашем php-коде? Вы использовали его как назначение вместо инструкции сравнения. – Nirus

+0

@Nirus, что? Я не вижу никакой ошибки. –

ответ

0

Функция ajax не может определить, какой тип данных возвращается, поскольку вы не устанавливаете заголовок ответа HTTP в PHP-коде. Добавление следующих перед циклом в то время как должно помочь:

header("Content-type: text/plain; charset=utf-8"); 

Документация: http://php.net/manual/en/function.header.php

0

Try json_encode в getinfo.php

mysql_connect("localhost", "root", "") or die(mysql_error()); 
mysql_select_db("my_db") or die(mysql_error()); 

if(isset($_REQUEST['fileIs'])) { 
$file = mysql_real_escape_string(htmlentities($_POST['fileIs'])); 
$value = mysql_query("SELECT * FROM files WHERE filename = '".$file."' "); 
while($row = mysql_fetch_array($value)) { 
     $result = $row['fileTitle']; 
         }  
} 
echo json_encode($result); or //use one 
return $result;     //optional 
Смежные вопросы