如何使提交按钮发送形式通过' PHP - > MySQL并执行javascript?

时间:2016-08-26 04:25:34

标签: javascript php mysql

我遇到了问题。当我点击提交时,我的表单值将被发送到数据库。但是,我希望表单将值发送到数据库并执行我的脚本,如标题中所述。

当我点击提交按钮时,表单将被发送到数据库并且脚本仍然被忽略。但是,如果我将空值输入到输入区域,则会执行javascript,并执行我想要的操作(即显示隐藏的< div>),但由于<< div> div>是空的,因为服务器没有输出。

我想要的是:

提交按钮 - >提交表单 - > javascript已执行> div出现>在div数据库中,SELECT FROM值(通过提交表单添加的值)出现。

这可能吗?我的意思是,像这样混合使用PHP和JavaScript吗?

提前致谢。

6 个答案:

答案 0 :(得分:1)

通过两种方式,您可以轻松修复它。

  
      
  1. 通过ajax - 提交表单并获得回复
  2.   
$('form').submit(function (e){
      e.preventDefault();
      $.ajax({
         type: "POST",
         url: url, //action
         data: form.serialize(), //your data that is summited
         success: function (html) {
             // show the div by script show response form html
          }

    });
      });
  
      
  1. 首先提交您的行动。在此页面,您可以执行脚本代码..在操作文件中,
  2.   
<?php

   if(isset($_POST['name']))
   {
  // save data form and get response as you want.
      ?>
          <script type='text/javascript'>
              //div show script code here
          </script>
      <?php
    }
?>

答案 1 :(得分:0)

她是上面评论的样本。

在javascript函数中你可以这样做

$.post( '<?php echo get_site_url(); ?>/ajax-script/', {pickup:pickup,dropoff:dropoff,km:km}, function (data) {

        $('#fare').html(data.fare);
        //alert(data.fare);
        fares = data.fare;
        cityy = data.city;
        actual_distances = data.actual_distance;
    }, "json");

在这个ajax调用中我将一些参数发送到ajaxscript页面,在ajaxscript页面上,我调用了一个web服务并获得了这样的响应

$jsonData = file_get_contents("https://some_URL&pickup_area=$pickup_area&drop_area=$drop_area&distance=$km");

echo $jsonData;

echo $ jsonData 将数据发送回上一页。 在上一页上,您可以看到我使用数据。来获取转发。

希望这会有所帮助!!

答案 2 :(得分:0)

您可以使用jQuery ajax来完成它。

$('form').submit(function (e){
  e.preventDefault();
  $.ajax({
     type: "POST",
     url: url, //url where the form is to be submitted 
     data: data, //your data that is summited
     success: function () {
         // show the div 
      }

});


  });

答案 3 :(得分:0)

您需要 ajax !这样的事情。

<强> HTML

<form method='POST' action='foobar.php' id='myform'>
    <input type='text' name='fname'>
    <input type='text' name='lname'>
    <input type='submit' name='btnSubmit'>
</form>

<div id='append'>

</div>

<强>的jQuery

var $myform = $('#myform'),
    $thisDiv = $('#append');

$myform.on('submit', function(e){

 e.preventDefault(); // prevent form from submitting

 var $DATA = new FormData(this);

 $.ajax({

 type: 'POST',
 url: this.attr('action'),
 data: $DATA,
 cache: false,
 success: function(data){

         $thisDiv.empty();
         $thisDiv.append(data);
       }

    });

});

foobar.php

<?php

  $fname = $_POST['fname'];
  $lname = $_POST['lname'];

  $query = "SELECT * FROM people WHERE fname='$fname' AND lname = '$lname' ";
  $exec = $con->query($query);
 ...
 while($row = mysqli_fetch_array($query){
   echo $row['fname'] . " " . $row['lname'];
 }

?>

那就是它!希望它有所帮助

答案 4 :(得分:0)

是的,你可以混合使用PHP和JavaScript。我在这里给你一个粗略的解决方案。

          Observable.just(command_string)
            .map(new Func1<String, Command>() {
                @Override
                public Command call(String command_string) {
                    ......;
                }
            })
            .filter(new Func1<Command, Boolean>() {
                @Override
                public Boolean call(Command file) {
                    ThreadUtils.logThreadSignature(TAG);
                    return  !isExcuetingCmd;
                }
            })
            .subscribeOn(Schedulers.io())
            .map(new Func1<Command, CmdResponse>() {
                @Override
                public CmdResponse call(Command command) {
                    //stupid code...
                    switch (cmd)
                    {
                        case CMD_1:

                            ...
                            CmdResponse = xxx
                            break;

                        case CMD_2:
                            ...
                            CmdResponse = xxx
                            break;

                        case CMD_3:
                            ...
                            CmdResponse = xxx
                            break;                       
                    }
                    return CmdResponse;
                }
            })
            .flatMap(new Func1<CmdResponse, Observable<String>>() {
                @Override
                public Observable<String> call(CmdResponse cmdResponse) {
                    return Observable.just(gson.toJson(CmdResponse));
                }

            });

答案 5 :(得分:0)

是的,这可能是ajax的最大用途。我会使用jquery $ .post

&#13;
&#13;
$("#myForm").submit(function(e){
  e.preventDefault();
  var val_1 = $("#val_1").val();
  var val_2 = $("#val_2").val();
  var val_3 = $("#val_3").val();
  var val_4 = $("#val_4").val();
  
  $.post("mydbInsertCode.php", {val_1:val_1, val_2:val_2, val_3: val_3, val_4:val_4}, function(response){
    // Form values are now available in php $_POST array in mydbInsertCode.php - put echo 'success'; after your php sql insert function in mydbInsertCode.php';
    if(response=='success'){
        myCheckdbFunction(val_1,val_2,val_3,val_4);
    }
  });
});

function myCheckdbFunction(val_1,val_2,val_3,val_4){

  $.post("mydbCheckUpdated.php", {val_1:val_1, val_2:val_2, val_3: val_3, val_4:val_4}, function(response){
    // put echo $val; from db SELECT in mydbSelectCode.php at end of file ';
    if(response==true){
        $('#myDiv').append(response);
    }
  });

}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
&#13;
&#13;
&#13;