如何将用户输入发送到php,执行sql命令并显示php的输出

时间:2011-10-17 12:55:05

标签: php javascript html sql ajax

我的程序是这样的。 html页面上有三个按钮,链接到三个不同的php文件,导致xml, 结果基于oracle中的fixed 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];这样的事情? soooo头痛现在。请激励我.... 这么多提前

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

   }
  });

1 个答案:

答案 0 :(得分:0)

如果您使用的是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 ['startd']和$ _POST ['location']值。