【问题标题】:run sql query from Javascript从 Javascript 运行 sql 查询
【发布时间】:2011-09-03 14:10:27
【问题描述】:

我现在处于困境中...我有这个函数可以从页面中获取 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,请解释/举例说明如何使用它。

【问题讨论】:

    标签: php javascript jquery ajax


    【解决方案1】:

    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'
    ?>
    

    你明白了... ;)

    //编辑:

    您可能应该在对话框中使用jQuery UI 以避免出现 cmets 中描述的消息。可能是这样的:

    <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');
        }
      }]
    });
    

    【讨论】:

    • 伙计,两个卡特曼对于一个帖子来说太多了:D(与问题完全无关的评论)
    • @tugberk 大声笑,甚至没有注意到这一点,但那是......好吧......“去你的,我要回家了!” :-D
    • 当我这样做时,它可以工作,但我收到一条消息,说明是否再显示额外的警报框。我该如何摆脱它?有其他人收到这样的消息吗?
    【解决方案2】:

    创建一个网络服务。 jQuery 具有允许您调用 Web 服务的功能,但您无法使用 jQuery 构建 Web 服务。

    【讨论】:

      【解决方案3】:

      AFAIK,您不能在网页上通过 JavaScript 直接运行 sql 查询。即便如此,这也将是最糟糕的事情。

      实现的最佳方法是编写一个服务(REST 服务将是一个很好的选择),它将连接到数据库,处理数据。那么通过 JavaScript 使用该服务将是一种更好的方法。

      查看JQuery.ajax() API,了解如何将 Http 帖子发送到服务器。

      【讨论】:

      • 我可以在javascript中使用这个jquery方法吗?
      • jQuery 是用 JavaScript for JavaScript 编写的,当然你可以使用它。你还会如何使用它?
      • @cbr0wn JQuery 不是另一种单独的语言。它是一个很好的 JavaScript 库(我想这就是为什么很多人将它视为另一种语言的原因)。您可以在网页上的 &lt;script&gt;&lt;/script&gt; 元素中使用 JQuery。
      • 我的意思是我可以在 javascript 函数中使用 jquery 方法吗?我问是因为它并不总是对我有用。我知道 jquery 和 javascript 基本上是一样的。
      • 当然可以。查看示例:jsfiddle.net/tugberk/suYRL 我想您首先需要了解 JavaScript 是什么,否则如果您进一步深入,您将面临很多麻烦。
      【解决方案4】:

      您应该将数据发送到一个 php 文件。

      $.post("delete.php", { id: id, date: date }, function(){alert('delete success!');} )
      .error(function() { alert("error"); });
      

      【讨论】:

        猜你喜欢
        • 2019-10-14
        • 1970-01-01
        • 2016-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-16
        • 2015-01-12
        相关资源
        最近更新 更多