запустить SQL-запрос из Javascript - PullRequest
1 голос
/ 03 сентября 2011

Я сейчас нахожусь в состоянии пристрастия ... У меня есть эта функция, которая получает 2 переменные со страницы, а затем запускает SQL-запрос после получения данных.

function delete(id,date){
    confirmdel=confirm('Are you sure?');
    if(confirmdel){
      var curid = id;
      var when = date;

      //sql code should go here   

    }
    else{
      //don't do anything
      return false;
    }
  } 

Как запустить SQL-файл?запросить функцию или отправить данные в php файл?Я пытался использовать jquery, но он просто проигнорировал бы его, поэтому, если я могу использовать jquery, объясните / приведите пример его использования.

Ответы [ 4 ]

4 голосов
/ 03 сентября 2011

JavaScript не может работать с базами данных сам по себе, он просто может сказать браузеру, что делать, и загружается только после того, как сервер отправил страницу в браузер. Думаю, вам придется работать с AJAX. Это довольно просто с помощью jQuery:

...

$.post('process.php', {id:curid, date : when}, function(data) {

  alert(data);
  //data contains all output from process.php, 
  //either in json-format if you jsonencode a results-array
  //or just a simple string you echo in the php

  return false; //prevent from reloading the page
});

...

Ваш process.php может выглядеть примерно так:

<?php

$curid = $_POST['id'];
$when = $_POST['date'];

//run the query

echo jsonencode($results_array);

//or check if query succeeded and echo e.g. 'ok' or 'failed'
?>

Вы поняли ...;)

// EDIT:

Вы, вероятно, должны использовать jQuery UI для диалогового окна, чтобы избежать сообщения, как описано в комментариях. Это может быть что-то вроде этого:

<div id="dialog_box" style="display: none;">
    Really delete?
</div>

$('#dialog_box').dialog({
  title: 'Really delete this stuff?',
  width: 500,
  height: 200,
  modal: true,
  resizable: false,
  draggable: false,
  buttons: [{
  text: 'Yep, delete it!',
  click: function(){
      //do the post
    }
  },
  {
  text: 'Nope, my bad!',
  click: function() {
      $(this).dialog('close');
    }
  }]
});
0 голосов
/ 03 сентября 2011

AFAIK, вы не можете напрямую запускать SQL-запросы через JavaScript на веб-странице.Даже если это так, это было бы наихудшим вариантом.

Лучший способ реализовать - это написать сервис (REST-сервис был бы хорош), который будет подключаться к БД и работать с данными.Тогда лучше работать с этим сервисом через JavaScript.

взгляните на JQuery.ajax () API , чтобы узнать, как вы можете отправлять сообщения Http на сервер.

0 голосов
/ 03 сентября 2011

Вы должны отправить данные в php файл.

$.post("delete.php", { id: id, date: date }, function(){alert('delete success!');} )
.error(function() { alert("error"); });
0 голосов
/ 03 сентября 2011

Сделать веб-сервис. В jQuery есть функции, которые позволят вам вызывать веб-сервис, но вы не можете создать веб-сервис с помощью jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...