使用参数onSubmit/onClick事件调用PHP函数

使用参数onSubmit/onClick事件调用PHP函数,php,ajax,function,button,call,Php,Ajax,Function,Button,Call,我有一个包含shop类的PHP文件,该类有几个静态公共函数,如: createBasket() getProductNameFromId() 文件:shop.php 我的职责之一是: static public function insertProductIntoBasket($id, $quantity, $name) { $basket = self::createBasket(); // We create the basket in another function if no

我有一个包含
shop
类的PHP文件,该类有几个静态公共函数,如:

  • createBasket()
  • getProductNameFromId()
文件:shop.php

我的职责之一是:

static public function insertProductIntoBasket($id, $quantity, $name)

{ 
$basket = self::createBasket(); // We create the basket in another function if not exist before handling a product for a basket.

$query = mysql_query("INSERT INTO myTable(id_order, id_product, quantity_product, file_name)
VALUES('".$basket['id_order']."', '".$id."', '".$quantity."', '".$name."')

;") or die($query.' '.mysql_error());

}
在另一个文件(产品文件)中,我想制作一个按钮,来处理这个功能,感谢上面的一个事件

因此,我尝试像这样调用这个PHP函数
insertProductIntoBasket($id,$quantity,$name)
,按钮上有一个事件:

文件:product.php

<form name="addProduct" method="post" action="shop.php">
   <input type="submit" value="Add to basket" name="pdt_basket"/>
</form>


我看到当按下按钮时会处理Javascript,并且有一种方法可以使用AJAX调用函数。但是我确实不知道如何从我的
insertProductIntoBasket
函数中传递参数。

只需使用shop.php文件从调用函数即可。您可以从中获取post变量并调用相应的函数。

//在使用ajax之前,您必须先知道如何传递(post)参数,
//Before you use ajax, you have to know how to pass(POST) parameter first,
//The following is a simple example

/*In product.php
* if you want to send parameter from this page,
* just create more input field within the form
* then the form will "POST" those parameter to shop.php
*/

<form name="addProduct" method="post" action="shop.php">
   <input name="id_order" type="text" value="1" />
   <input name="id_product" type="text" value="1" />
   <input type="submit" value="Add to basket" name="pdt_basket"/>
</form>

/*In : shop.php
*you can get those parameter by using $_POST['input_name']
*the following is the example to get the id_order and id_product send from product.php
*/

$id_order = $_POST['id_order'];
$id_product = $_POST['id_product'];

/* Then you can try to call function inside shop.php will calling function directly */
insertProductIntoBasket($para);

//You may not need AJAX in this case, I will update my answer if you require for it.
//下面是一个简单的例子 /*在product.php中 *如果要从此页发送参数, *只需在表单中创建更多输入字段 *然后表单将这些参数“发布”到shop.php */ /*输入:shop.php *您可以使用$\u POST['input\u name']获取这些参数 *下面是从product.php获取id_订单和id_产品发送的示例 */ $id\u order=$\u POST['id\u order']; $id\u product=$\u POST['id\u product']; /*然后您可以尝试在shop内调用函数。php将直接调用函数*/ 将产品插入篮子($第段); //在这种情况下,您可能不需要AJAX,如果您需要,我将更新我的答案。
使用ajax调用product.php

<form name="addProduct" method="post" action="shop.php">
   <input type="submit" value="Add to basket" name="pdt_basket"/>
</form>
函数blah()
{
$.ajax({url:'product.php?arg1=val1&arg2=val2&arg3=val3'});
}


并使用$1$2等访问传递的值

查看shop.php中的
$\u POST['pdt\u basket']
。您不能直接调用该函数,但可以检查
$\u POST['pdt\u basket']
的值,并执行该函数(如果已设置)。如果您想向表单中添加其他数据,请尝试进行自定义ajax调用(jQuery是最简单的),因为您无法从JavaScript调用PHP函数。您可以做的是对PHP后端进行AJAX调用,然后调用希望传递get或POST superglobals参数的任何PHP代码。如果您想正确地执行此操作,请查看Symfony的HttpFoundation组件,它使您能够创建好的请求对象,并将其传递给您的函数。谢谢L.C.Echo Chan。所以现在我这样使用我的表单:
>Quantitédu produit>>>>
但是我应该在哪里写它:
shop::insertproduiteintopanier($\u POST['pdt\u id'],$\u POST['pdt\u qtte'],$\u POST['pdt\u name'])来自包含我的函数的my shop.php?只需在任何可以进行函数调用的地方编写即可。。如果你听不懂我说的话,试着把它写在shop.php的最底层