有没有办法当我点击一个按钮时会执行一堆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事件,但我不知道如何。
请赐教我电脑的威客!
答案 0 :(得分: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']);
答案 1 :(得分:0)
使用jQuery:
$('.minibutton').on('click', function(e) {
// do some ajax stuff here
});
答案 2 :(得分:0)
如果您的.php需要来自点击元素的值,不,不。 如果您的代码本身只是一堆PHP,与客户端请求无关,那么您 可以在 js函数中回显它并在点击时调用它。