简体   繁体   English

PHP引发500错误

[英]PHP Throws 500 Error

I am attempting to query a SQL Server Database and return the results onscreen. 我试图查询SQL Server数据库并在屏幕上返回结果。 My page loads as it should, but when I push the button to query SQL Server if I look at the console it shows a 500 error. 我的页面按原样加载,但当我按下按钮查询SQL Server时,如果我查看控制台,则显示500错误。

What do I need to alter so that the valid results are returned on screen as I need? 我需要更改什么才能在我需要时在屏幕上返回有效结果?

<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);

EDIT 编辑
This is what the dev console shows 这是开发控制台显示的内容
an error on this line jquery-1.12.4.js:10254 此行上的错误jquery-1.12.4.js:10254

And this is the actual syntax when I click that 这是我点击它时的实际语法

// 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 );

I have added a try and catch exception, this will return the issue with your query 我添加了一个try和catch异常,这将返回您的查询问题

$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);

Hello I made a module to accomplish what you are doing and it worked well. 您好,我制作了一个模块来完成您正在做的事情并且运行良好。 I'll put the example here might help you. 我会把这里的例子给你带来帮助。

Module: 模块:

<?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;
    }
}
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM