JQuery — PHP выбрасывает 500 Ошибка

Я пытаюсь запросить базу данных SQL Server и вернуть результаты на экран. Моя страница загружается как надо, но когда я нажимаю кнопку, чтобы запросить SQL Server, если я смотрю на консоль, появляется ошибка 500.

Что мне нужно изменить, чтобы действительные результаты возвращались на экран по мере необходимости?

<select name="peopleinfo[]" multiple style="min-width: 200px;" id="peopleinfo">
<option value="red">Red</option>
<option value="blue">Blue</option>
</select>
<div><input type="submit" value="Submit" id="ajaxButton" onclick="ReturnIt()"></div>
<div id="result_data"></div>
<script>
function ReturnIt(){
var peopleinfo = $('#peopleinfo').val();
jQuery.ajax({
url: "",
type: 'POST',
dataType: "html",
data: { peopleinfo: peopleinfo },
success : function(result) {
$('#result_data').empty();
$('#result_data').append(result);
} ,
error: function(){

}
});
}
</script>
$peopleinfo = implode(',',$_REQUEST['peopleinfo']);
$option = array(); //prevent problems

$option['driver']   = 'mssql';            // Database driver name
$option['host']     = 'Lockwood';    // Database host name
$option['user']     = 'root';       // User for database authentication
$option['password'] = 'sa';   // Password for database authentication
$option['database'] = 'test';      // Database name
$option['prefix']   = '';             // Database prefix (may be empty)

$db = JDatabase::getInstance( $option );
$result = $db->getQuery(true);
$result->select($db->quoteName(array(".$peopleinfo.")));
$result->from($db->quoteName('[redheadstepchild]'));
$db->setQuery($result);
$row = $db->loadRowList();
print_r($row);

РЕДАКТИРОВАТЬ
Это то, что показывает консоль разработчика

ошибка в этой строке jquery-1.12.4.js:10254

И это фактический синтаксис, когда я нажимаю, что

// Do send the request
// This may raise an exception which is actually
// handled in jQuery.ajax (so no try/catch here)
xhr.send( ( options.hasContent && options.data ) || null );

1

Решение

Здравствуйте, я сделал модуль, чтобы выполнить то, что вы делаете, и он работал хорошо. Я приведу пример здесь может помочь вам.

Модуль:

<?php
defined('_JEXEC') or die;

include_once __DIR__ . '/helper.php';

// Instantiate global document object
$doc = JFactory::getDocument();

$js = <<<JS
(function ($) {
$(document).on('click', 'input[type=submit]', function () {
var value   = $('input[name=data]').val(),
request = {
'option' : 'com_ajax',
'module' : 'ajax_search',
'data'   : value,
'format' : 'raw'
};
$.ajax({
type   : 'POST',
data   : request,
success: function (response) {
$('.search-results').html(response);
}
});
return false;
});
})(jQuery)
JS;

$doc->addScriptDeclaration($js);

require JModuleHelper::getLayoutPath('mod_ajax_search');
?>

Helper:

<?php
defined('_JEXEC') or die;

class modAjaxSearchHelper
{
public static function getAjax()
{
include_once JPATH_ROOT . '/components/com_content/helpers/route.php';

$input = JFactory::getApplication()->input;
$data  = $input->get('data', '', 'string');

$db = JFactory::getDbo();
$query = $db->getQuery(true);// Build the query
$query
->select($db->quoteName(array('id','name','email')))
->from($db->quoteName('#__banner_clients'))
->where($db->quoteName('name') . ' LIKE '. $db->quote('%' . $data . '%'));
//->order('id ASC');$db->setQuery($query);
$results = $db->loadObjectList();// Get output
$output = null;

foreach($results as $result){
$output .= '<h4><a href="' . ContentHelperRoute::getArticleRoute($result->id,  $result->email) . '">' . $result->name . '</a></h4>';
}

if($output == null or empty($data))
{
$output = 'Sorry! No results for your search.';
}

return $output;
}
}
?>
0

Другие решения

Я добавил исключение «попробуй и поймай», это вернет проблему с твоим запросом

$peopleinfo = implode(',',$_REQUEST['peopleinfo']);
$option = array(); //prevent problems

$option['driver']   = 'mssql';            // Database driver name
$option['host']     = 'Lockwood';    // Database host name
$option['user']     = 'root';       // User for database authentication
$option['password'] = 'sa';   // Password for database authentication
$option['database'] = 'test';      // Database name
$option['prefix']   = '';             // Database prefix (may be empty)

try{
$db = JDatabase::getInstance( $option );
$result = $db->getQuery(true);
$result->select($db->quoteName(array(".$peopleinfo.")));
$result->from($db->quoteName('[redheadstepchild]'));
$db->setQuery($result);
}catch(Exception $e){
echo $e->getMessage();
}
$row = $db->loadRowList();
print_r($row);
0

По вопросам рекламы [email protected]