用jquery $ .post url调用spesific函数php

时间:2017-07-25 05:13:11

标签: javascript php jquery

我有一个带有php函数的文件,名为function_query.php

function_query.php

<?php 
$connection = mysqli_connect( "localhost","root","","mydb");
function query1($connection){
   //my query
}

function query2($connection){
  //my query
}
?>

然后在另一个名为mypage.php的文件中,我想用jquery $ .post发布一些数据 ,但我不知道如何使用jquery $ .post调用特定函数,我的脚本是这样的

mypage.php

<?php include_once('function_query.php')?>

<button id="btn-save"> Save </button>

   <script type="text/javascript">

     $('#btn-save').on('click',function(e) {

      $.post(base_url + "function_query.php/query1", {}, function(res) {
              alert('Save!');

            });
      });
   </script>

当我运行该脚本时,它没有错误,但我的数据没有保存到我的数据库

我如何在javascript中调用该函数?

谢谢

4 个答案:

答案 0 :(得分:2)

您可以在php文件中添加条件并从php文件中获取javascript中的数据,例如$ _POST [&#39; query_type&#39;],然后您可以调用函数将数据保存到数据库中。

你的function_query.php文件:

<?php
function query1($data){
    //your query
}
function query2($data){
    //your query
}

$query_type = $_POST['query_data'];
$data['name'] = $_POST['name']; 
$data['family'] = $_POST['family'];

if($query_type == 'insert'){
    query1($data);
} else {
    query2($data);
}
?>

这可以是你的jquery代码:

$.post( "function_query.php", { 
    query_data: "insert", 
    name: "Muhammad", 
    family: "Rifqi" 
});

答案 1 :(得分:0)

您使用的是 function.php / query1 ,但您的文件名是 function_query.php

试试这个

 $('#btn-save').on('click',function(e) {

  $.post(base_url + "function_query.php/query1", {}, function(res) {
          alert('Save!');

        });
  });

并从函数中删除 $ connection 并在函数

中使用它
<?php 
    $connection = mysqli_connect( "localhost","root","","mydb");
    function query1($data){
       //my query
    }

    function query2($data){
      //my query
    }
?>

你也可以尝试这个

<script>
    $.ajax({
        url:base_url + "function_query.php/query1",
        type:'post',
        dataType:'json',
        contentType:'application/json',
        data:JSON.stringify({your data will goes here })
        success:function(data){
            console.log(data);
        },
        error:function(err){
            console.log(err)
        }
    })
</script>

答案 2 :(得分:0)

你需要处理函数调用的请求。

<强> function_query.php

<?php 
$connection = mysqli_connect( "localhost","root","","mydb");

if(isset($_REQUEST['query1']))
   query1();
else if(isset($_REQUEST['query2']))
   query2();

function query1(){
   //my query
}

function query2(){
  //my query
}
?>

并在你的mypage.php中输入filename.php?functionname .....

mypage.php

保存

 $('#btn-save').on('click',function(e) {

  $.post(base_url + "function_query.php?query1", {}, function(res) {
          alert('Save!');

        });
  });

答案 3 :(得分:0)

试试这个

<button id="btn-save"> Save </button>
   <script type="text/javascript">
     $('#btn-save').on('click',function(e) {
      $.post("test1.php?func=query1", {a:'abc'}, function(res) {
          alert(res);
        });
      });
   </script>

和php看起来像这样

$_GET['func']();
function query1(){
   //my query
   echo $_POST['a'];
   echo 'yyy';
}

function query2(){
  //my query
  echo 'nnn';
}
echo 'no';