【问题标题】:how to send user input to php, excute sql command and display output from php如何将用户输入发送到 php,执行 sql 命令并显示 php 的输出
【发布时间】:2011-12-09 07:01:28
【问题描述】:

我的程序是这样工作的。 html页面上有三个按钮链接到三个不同的php文件,这些文件导致xml, 结果基于oracle中的固定sql命令。 当用户单击其中一个按钮时,例如。

    <p><input class="fetchSeries" type="button" value="CurrValue">  
  <a href="connectyf.php"> </a>  
  <span></span>
  </p>

然后它会触发下面的 ajax,并在 html 页面上绘制图形

 $("input.fetchSeries").click(function () {
     var button = $(this);  
     var dataurl = button.siblings('a').attr('href');
     $.ajax({
     url: dataurl,
     type: "GET",
 cache: false,
     success: function (data2) {
      $(data2).find('node').each(function(){
      var currV = $(this).find('snv').text();
      var dateT =   ($(this).find('agev').text())*1000;
      var d2 = [];
      d2.push(dateT, currV);
      dataset.push(d2);
      button.siblings('span').text('Fetched '  + ', first point: ' );
     })
   data.push(dataset);
   $.plot(placeholder, data,options);
   dataset = [];
  }
    }); 
  });

sql 命令:

   $sql = "SELECT TO_CHAR(DATETIME, 'YYYY-MM-DD HH24:MI:SS') AS DATETIME, PRESENTSTATE
   FROM T00000000_01080413 WHERE DATETIME BETWEEN '04-OCT-11' AND '15-OCT-11' ";

我现在要做的是放置四个用户输入字段和一个按钮,单击按钮控制sql命令,如果我没记错的话,php页面应该是这样的

$sql = "SELECT TO_CHAR(DATETIME, 'YYYY-MM-DD HH24:MI:SS') AS '$_POST[datetime]', '$_POST[vall]' FROM T00000000_01080413 WHERE DATETIME BETWEEN '$_POST[startdate]' AND '$_POST[enddate]' ";

现在我有点头疼,如何将用户输入用作 sql 命令并在单击按钮后绘制图形?

是否可以使用输入[name=startdate];类似的东西? 现在太头疼了。请启发我.... 提前谢谢你

  <form method="post" > 
    <div> 
        <input type="text" class="form-text required" value="" size="15" id="edit-name" name="startd" maxlength="60"> 
        <input type="text" class="form-text required" value="" size="15" id="edit-name" name="endd" maxlength="60"> 
        <input type="text" class="form-text required" value="" size="15" id="edit-name" name="pname" maxlength="60"> 
        <input type="text" class="form-text required" value="" size="15" id="edit-name" name="val" maxlength="60"> 
      <input class="fetchSeries" type="button" value="draw graph!"/> 
    </div>
  </form> 














$.ajax({
  type: "POST",
  url: "connectyf1.php",
  data: "startdate="+startdt+"&enddate="+enddt+"&tablename="+tname+"&parameter"+param,
  success: function(grapHtml){

    $("#graph").append(graphHtml); 

 $.ajax({
               url: "connectyf1.php",
               type: "GET",
       cache: false,
               success: function (data2) { 
  $(data2).find('node').each(function(){
  var currV = $(this).find('snv').text();
  var dateT =   ($(this).find('agev').text())*1000;
  var d2 = [];
  d2.push(dateT, currV);
   dataset.push(d2);
  button.siblings('span').text('Fetched '  + ', first point: ' );
  })
   data.push(dataset);
    $.plot(placeholder, data,options);
        dataset = [];
  }
    });

   }
  });

【问题讨论】:

  • 我不确定我是否理解你的问题。您是否正在寻找 jquery 选择器以通过其名称属性选择输入元素?这是用 $('input[name="startd"]')
  • 我真的不明白是什么问题?你想将值发送到 php 并返回一个图表?
  • $('input[name="startd"]') 是的,这就是我正在寻找的答案的一部分......困难的部分是我如何以及在哪里使用 $('input[ name="startd"]') 将用户输入作为 sql 命令的一部分发送到 php?
  • 我相信 php 文件我可以简单地使用@post 来获取从 html 发送的日期...但是我怎样才能发送...?
  • 仍然不确定我是否遵循,但在您的示例中,您使用带有 type="GET" 的 $.ajax。这意味着您将值作为获取参数发送到 url,例如 www.example.com/connectyf.php?startd=2011-10-17。在 php 中,您可以访问 $_GET[] 数组中的 get 参数。 $_POST[] 数组用于提交方法为“post”,而不是“get”

标签: php javascript html sql ajax


【解决方案1】:

如果您使用的是 jquery(1.5 或更高版本),您可以使用以下方式进行 ajax 调用:

var startd = $('input[name="startd"]').val();

$.ajax({
  type: "POST",
  url: "some.php",
  data: "startd="+startd+"&location=Boston",
  success: function(grapHtml){
    $("#graph").append(graphHtml);
  }
});

这会向 some.php 发出一个 post 请求。该文件将接收 $_POST['startd'] 和 $_POST['location'] 值。

【讨论】:

  • 再次感谢您的帮助和时间。但不太确定 $("#graph").append(graphHtml);?我见过 ppl 做 $('body div').text(data); .是打印结果的功能吗?
猜你喜欢
  • 2021-03-27
  • 1970-01-01
  • 2016-12-27
  • 2011-04-23
  • 2012-05-27
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多