使用Ajax运行php函数

时间:2017-03-17 17:39:27

标签: javascript php jquery ajax

您好我正在尝试创建一个按钮,它将调用php函数将产品从Web应用程序添加到Shopify

首先这是我的result.php文件,该文件成功显示了亚马逊产品 http://codepad.org/MPs4y1Qu

你会发现两件重要的事情

首先<button type="button">add</button>

<script type="text/javascript">
    $(document).ready(function(){
        $("button").click(function(){
            $.ajax({
                type: 'POST',
                url: 'create_product.php',
                success: function(data) {
                    prompt(data);
                }
            });
        });
    });
</script>

问题是,当我点击添加按钮时,它会显示页面的HTML,但create_product.php文件上没有任何反应。我希望它能够调用该功能。另一方面,create_product上的代码很好,单独工作100%但不能使用我的网络应用。

这是我的create_product.php代码:

http://codepad.org/at7LtcMK

2 个答案:

答案 0 :(得分:1)

您的AJAX调用将通过POST或GET发送数据,然后您可以执行任何操作并返回脚本。这很简单。

https://github.com/request/request#requestoptions-callback

让我们使用示例。如果你想在你的服务器上制作A + B,你需要一个包含这样输入的表格:

<form id="yourform">
    <div><input name="A" type="text" /></div>
    <div><input name="B" type="text" /></div>
</form>

然后,您将编写一些脚本来说明您的表单将在提交时执行的操作。当你使用jQuery时,让我们使用jQuery:

$("#yourform").submit(function(e) {
    e.preventDefault();
    $.ajax({
        type: "POST", //or "GET", if you want that
        url: "yourfile.php",
        data: $(this).serializeArray(), //here goes the data you want to send to your server. In this case, you're sending your A and B inputs.
        dataType: "json", //here goes the return's expected format. You should read more about that on the jQuery documentation
        success: function(response) { //function called if your request succeeds
            //do whatever you want with your response json;
            //as you're learning, try that to see on console:
            console.log(response);
        },
        error: function(response) { //function called if your request failed
            //do whatever you want with your error :/
        }
    });
});

但是你在服务器上做什么? 好吧,我只想回复我的输入,只是为了检查。这是我的PHP:

<?php
    header("Content-type: application/json; charset=utf-8"); //that's required to return any JSON data
    if(isset($_POST, $_POST['A'], $_POST['B']))
        exit(json_encode($_POST));
    else
        exit("INVALID REQUEST.");
?>

这就是您可以使用AJAX发送信息以在PHP上执行某些操作的方式。

答案 1 :(得分:0)

您可以在脚本中添加以下ajax函数。请注意,ajax函数将值为triggerPHP的数据发送到您拥有PHP代码的页面。因此,在运行php代码的.php页面中,您必须将代码设置为&#34; catch&#34;在某种程度上,通过$ _POST [] superglobal触发phpPHP数据并执行你想要的任何内容。 EG

if(isset($_POST['triggerPHP'])){
//execute the code here remember to echo  json_encode(data) 

}

JQuery ajax:

&#13;
&#13;
$(document).ready(function(){
     $("button").click(function(){

     $.ajax({
     type: 'POST',
     data:'triggerPHP',
     dataType: "json",
     url: 'create_product.php',
     success: function(data) {
     prompt(data);
     },
     error: function(XMLHttpRequest, textStatus, errorThrown) {
     alert("some error");
  }  
     });
     });
    });
&#13;
&#13;
&#13;