0

有没有办法当我点击一个按钮时会执行一堆 php 代码?

例如;

<input type="button" value="Submit Order" class="minibutton" **onClick="executePHP"**>

这个按钮对象就在这里,如果我点击它,这个 php 代码将被执行。

    include("../includes/connect.php");
    include("../includes/generateTimestamp.php");
    include("../includes/knowthename.php");


    $pid=$_POST['submit_id'];
    $pname = $_POST['submit_name'];
    $total = $_POST['submit_total'];
    $quantity = $_POST['submit_qty'];
    $price = $_POST['submit_price'];
    $unit = $_POST['submit_unit'];
    $change = $_POST['submit_sukli'];
    $payment = $_POST['submit_payment'];
    $count = $_POST['count'];
    //explode
    $newpid = explode(";",$pid);
    $newpname = explode(";",$pname);
    $newquantity = explode(";",$quantity);
    $newprice = explode(";",$price);
    $newpriceunit = explode(";",$unit);


    $sql = mysql_query("INSERT INTO sales (sales_date, total_price, emp_id) VALUES ('$timestamp','$total', '$employee_id')");
    mysql_query($sql);
    $id_gen = mysql_insert_id();
    $count = $count - 1;
    while($count = -1){

            $product_id = $newpid[$count];
            $product_name = $newpname[$count];
            $product_quantity = $newquantity[$count];
            $product_price = $newprice[$count];

            $sql2("INSERT INTO sales_details (sales_id,product_id,sales_qty,unit_price,net_price) VALUES ('$id_gen','$newpid[$count]','$product_quantity[$count]',
            '$product_price[$count]','$newpriceunit[$count]')");
            mysql_query($sql2);         
        }
    header('Location: prompt.php?x=5');

    }else{
        echo 'Nothing here!';
        }

我想让 onclick 函数作为一个断路器,如果我点击它,它将解开并继续执行那些代码,

如果我无法做到这一点,还有其他方法吗?

函数 isset 将不起作用,因为数据将丢失(数组),因为原始数据来自 $_POST。我希望是 onclick 事件,但我不知道如何。

请各位电脑高手赐教!

4

3 回答 3

3

您只能将 JavaScript 附加到浏览器事件。如果要执行 PHP 等服务器端代码,则需要调用服务器。在您的情况下,忘记 javascript,只需将您的表单发布到您的 PHP 页面。

<form method="post" action="file.php">

  <!-- form inputs -->

  <input type="button" value="Submit Order" class="minibutton" />

</form>

然后把你的代码放进去file.php

编辑

将所有帖子数据放在隐藏的表单字段中。然后当您单击该按钮时,它将重新提交帖子数据。

foreach($_POST as $key => $val) {
    echo '<input type="hidden" name="'.htmlspecialchars($key).'" value="'.htmlspecialchars($val).'" />'."\n";
}

如果您有一个多维帖子数组,只需serialize()将其粘贴在 1 个字段中

echo '<input type="hidden" name="data" value="'.htmlspecialchars(serialize($_POST)).'" />'."\n";

然后unserialize()它在另一边。

$_POST = unserialize($_POST['data']);
于 2012-06-07T23:44:28.910 回答
0

使用 jQuery:

$('.minibutton').on('click', function(e) {
    // do some ajax stuff here 
});

示例:http ://api.jquery.com/jQuery.ajax/

于 2012-06-07T23:41:52.843 回答
0

如果您的 .php 需要来自被点击元素的值,那么您不需要。 如果您的代码本身只是一堆 php,与客户端请求无关,您可以在js 函数中回显它并在点击时调用它。

于 2012-06-07T23:43:22.250 回答