Константин Ефименко
Гуру
(3721)
3 года назад
"Можно ли сделать выборку из таблицы прямо в сайт.."
Допустим у нас есть некий файл - example.php, это файл, в который будут поступать только ajax запросы и более ничего. В нём мы делаем следующее:
if (isset($_POST['myReqest']))
{
MyAjax();
}
function MyAjax()
{}
Таким образом, мы сможет складывать в один файл, сколько угодно ajax запросов и они не будут конфликтовать и пересекаться.
function MyAjax()
{
include('connect.php');
$sql = ("Здесь будет ваш sql запрос обращения к базе");
$stmt = sqlsrv_query($conn, $sql);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
$Param1 = $row['Значение из базы'];
}
echo json_encode((object)
[
"MyPar" => $Param1, //По этому названию, будем обращаться в jQuery
]);
}
Мы подключаем connect.php, это один единственный файл, который будет содержать переменную подключения к базе, в данном случае - $conn.
После извлечения нужных переменных, перечисляем и складываем их в объект json. Причём каждая отдельная переменная, будь-то строка или массив, будут различимы.
$.post("example.php", "myReqest="+MyStr, function(data)
{
var MyPar = JSON.parse(data).MyPar;
$('select').html('');
$.each(MyPar, function(i)
{
var counter = MyPar[i];
$('select').append('<option value="'+counter+'"></option>');
});
}, "json");
Со стороны jQuery, мы делаем POST запрос, где MyStr - это переменная, которую мы хотим передать. В обратном вызове, мы вытаскиваем конкретное значение и уже со стороны клиента распоряжаемся как хотим. В данном случае, мы очищаем и заполняем элемент select.
Мы так же можем захотеть, передать несколько элементов запрос, выглядит это так:
var jsonObj = [];
$('.elem').each(function()
{
item = {}
item["Par1"] = a;
item["Par2"] = b;
item["Par3"] = c;
jsonObj.push(item);
});
var jsonStr = JSON.stringify(jsonObj);
$.post("example.php", "myReqest="+jsonStr, function(data){}
Мы складывает в объект переменные столько раз, сколько цикл найдёт элементов с классом - elem. Затем преобразуем в строку json и отправляем подобно примеру выше.
Как, что и куда выводить со стороны клиента, уже решать только вам.
FrapsGNМастер (1082)
3 года назад
Вопрос по данной строчке
$('select').html('');
Она как я понял у объекта "отчищает все внутренности?
И ещё вопрос: если мы нажимаем кнопку submit в форме и посылаем через POST, то страница автоматически обновляется? Нужно получается запретить ей это делать принудительно через JS?