#javascript #php #ajax
#javascript #php #ajax
Вопрос:
Я пытаюсь выполнить вызов ajax для моего файла серверного сервера php. Однако вызов возвращает неопределенный объект и переходит к функции ошибки без указания причины. Я не могу разобраться в проблеме.
Вот вызов ajax:
function getStationList(){
console.log("Station List");
$.ajax({
type: "POST",
url: "dist/php/charts_data.php",
dataType: 'json',
data: {functionname: 'getStationsData', arguments: 'na'},
success: function(obj){
stations = obj.stationList;
stationIDs = obj.stationID;
stationCount = obj.row_count;
setStationOptions(0);
},
error: function(obj){
console.log("1");
console.log(obj.error);
}
});
}
Поскольку файл php будет иметь несколько разных функций вызова базы данных, я помещаю функции в регистр переключения, как показано ниже:
switch($_POST['functionname']){
case 'getStationsData':
$sql = "SELECT * FROM Conf_Station";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query($conn, $sql, $params, $options);
$aResult['row_count'] = sqlsrv_num_rows( $stmt );
$aResult['stationList'] = array();
$aResult['stationID'] = array();
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
array_push($aResult['stationList'],$row['Station']);
array_push($aResult['stationID'],$row['StationID']);
}
sqlsrv_free_stmt( $stmt);
break;
default: $aResult['error'] = 'Not found function '.$_POST['functionname'].'!';
}
Но выполнение приведенного выше дает мне это:
Сообщение консоли
Я в недоумении. Может кто-нибудь, пожалуйста, помочь с этим?
Комментарии:
1. У вас есть возврат
$aResult
к интерфейсному коду через оператор echo или print_r после кодирования json .2.
console.log(obj.error);
неверно. Читать api.jquery.com/jQuery.ajax/#jqXHR и скажите нам, где говорится, что объект jqXHR, переданный в функцию error, содержит свойство «error»? Есть список свойств, которые он возвращает… попробуйте один из них вместо этого. Также, пожалуйста, используйте сетевой инструмент вашего браузера, чтобы узнать, что произошло с запросом — вы можете увидеть статус, с которым он вернулся, а также перейти к нему, чтобы увидеть необработанный ответ.3. Также, как говорится в первом комментарии, неясно, действительно ли / где в PHP вы отправляете ответ JSON обратно в браузер.