Javascript函数post和call php脚本
在html中,我有几个按钮,这些按钮是为数据库中具有特定状态的每个对象自动创建的。每个按钮都有自己的idJavascript函数post和call php脚本,php,javascript,jquery,html,mysql,Php,Javascript,Jquery,Html,Mysql,在html中,我有几个按钮,这些按钮是为数据库中具有特定状态的每个对象自动创建的。每个按钮都有自己的id echo '<Button id="button'.$counter.'" onClick="clickedbutton('.$counter.', '.$row['OrderID'].')" >'."<center>".$row['OrderID']."<br>"."</center>".'</Button>'; 此函数加载按钮
echo '<Button id="button'.$counter.'" onClick="clickedbutton('.$counter.', '.$row['OrderID'].')" >'."<center>".$row['OrderID']."<br>"."</center>".'</Button>';
此函数加载按钮的编号,使其成为button0、button1等。orderid也成功传递。现在在函数中,我想调用一个外部php脚本,但还必须将orderid传递给脚本
<?php
//connect to database
include_once('mysql_connect.php');
// Select database
mysql_select_db("test") or die(mysql_error());
// SQL query
$strSQL = "update orders set OrderStatus = 'In Progress' where OrderID = '" + orderid + "'";
mysql_close();
?>
使用Ajax
function clickedbutton(buttonid,orderid){
$.post("page.php", { buttonid: buttonid })
.done(function(data) {
alert("Data Loaded: " + data);
});
}
在php中,您可以通过$u POST获得它
//[..] previous php code
$strSQL = "update orders set OrderStatus = 'In Progress' where OrderID = '" + $_POST['buttonid'] + "'";
//[..] rest of php code
注意SQL注入。不要把这个建议当作书面建议。你可以这样试试
var url = myurl +'?id=' + orderid;
window.location.href = url;
和在php页面中
$strSQL = "update orders set OrderStatus = 'In Progress' where OrderID = '".mysql_real_escape_string($_GET['id'])."'";
编辑
如果你想在不刷新页面的情况下加载php文件,那么你可以按照朋友的建议尝试。编辑2018
是的,我还活着。您可以使用fetch
API而不是jQuery
。除了(猜猜是谁?…)IE 11及以下,它得到了广泛的支持,但有一个polyfill。享受现代编码
旧答案
您必须使用AJAX
Javascript本身无法访问php脚本。您必须发出请求,将变量传递给PHP,对其求值并返回结果。如果使用jQuery发送请求相当简单:
$.ajax({
data: 'orderid=' + your_order_id,
url: 'url_where_php_is_located.php',
method: 'POST', // or GET
success: function(msg) {
alert(msg);
}
});
您的php脚本应该获得如下顺序id:
echo $_POST['orderid'];
输出将作为字符串返回到success函数
编辑
您还可以使用速记功能:
$.get('target_url', { key: 'value1', key2: 'value2' }).done(function(data) {
alert(data);
});
// or eventually $.post instead of $.get
假设您不想使用AJAX,您可以在clickedbutton
函数中执行以下操作:
window.location.replace('path/to/page.php?orderid=' + orderid);
然后在您的page.php中
"...where OrderID = '" . $_GET('orderid') . "'";
(注意连接字符串的点)最简单的方法是构建一个查询字符串并将其附加到php脚本url的末尾
function clickedbutton(buttonid,orderid){
var url = 'script.php?';
var query = 'buttonid=' + buttonid + '&orderid=' + orderid;
window.location.href = url + query
}
在php脚本中,您可以通过以下方式访问参数:
<?php
echo $_GET['buttonid'];
echo $_GET['orderid'];
function clickedbutton(buttonid,orderid){buttonid=“button”+buttonid;$.ajax({data:'orderid='+orderid,url:'statusupdate.php',method:'POST',//或GET success:function(msg){alert(msg);}}}}$strSQL=“updateorders set OrderStatus='Progress'其中orderid='+$POST['buttonid'+'”;
<?php
echo $_GET['buttonid'];
echo $_GET['orderid'];