2016-09-15 3 views
1

у меня есть файл JavaScript, который использует POST, чтобы послать некоторые данные в PHP файл, как например:

var additional = "Feb2015"; 
xmlhttp.open("POST", "database_comm_general.php?query=" + additional, true); 

В файле PHP, я использую $ _GET чтобы получить, что «дополнительные» переменную:

$query = $_GET['query']; 

Теперь, если я хочу, чтобы использовать его, чтобы получить некоторые данные из MySql, я использую это для моего запроса, но когда я повторяю это, он просто показывает пустые кавычки, где «февраль 2010» должно быть:

$sql_query = "SELECT * FROM '" . $query . "'"; 
Output: "SELECT * FROM ''" 

Еще более странно, если я использую json_encode и печатаю его на стороне javascript, он отображается просто отлично.

Аналогичным образом, если я вижу, равна ли переменная «Feb2015», с json_encode она вернет true, но на странице будет выводиться ложь одновременно.

Любые идеи?

Edit:

Это мой Javascript код:

xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     var content = JSON.parse(this.responseText); 
     window.alert(content);}} 

xmlhttp.open("POST", "database_comm_general.php?query=" + additional, true); 
xmlhttp.send(); 
+1

Это выглядит как ужасная страшная вещь. ОДНАКО. Вы отправляете POST, а не GET. Вы должны использовать $ _POST, а не $ _GET. – Farkie

+0

'json_encode и напечатать его на стороне javascript' Вещь в этот момент когда-либо застряла. Что вы имеете в виду? И покажите больше своего кода. – JOUM

+0

Добавьте это в свой PHP-код, чтобы подтвердить, что вы действительно получаете значение в $ _GET: file_put_contents ('get_array.txt', print_r ($ _ GET, TRUE)); Затем выполните javascript и просмотрите файл. – Craig

ответ

0

Хорошо, я не был в состоянии решить эту проблему точно, но я получил мой код работает с помощью других средств:

Во-первых, я использую JQuery вместо JavaScript для общения с PHP:

text = "Feb2015"; 
$.ajax(
    { url : "database_comm_general.php?" + text, success: function(data){ 
     var return_data = JSON.parse(data); 
     populateTableList(return_data); 
    }}); 

Во-вторых, в файле PHP, я не использую $ _GET, я получаю данные из адреса ссылка:

$link = $_SERVER[REQUEST_URI]; 
$index = strpos($link, "?"); 
$sub_string = substr($link, $index+1, 7); 
$sub_string = $sub_string; 

В-третьих, я добавил одну строку кода в код MySQL, которые устранили проблемы с некоторые из массивов, которые не могут быть закодированы:

mysqli_set_charset($conn, 'utf8'); 

в общем, я чувствую, что я был в ад и обратно, но я надеюсь, что это поможет кому-то в будущем.

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