Javascript函数发布并调用php脚本

DaV*_*iDa 10 html javascript php mysql jquery

在html中,我有几个按钮,这些按钮是为具有特定状态的数据库中的每个对象自动生成的.每个按钮都有自己的ID.

echo '<Button id="button'.$counter.'" onClick="clickedbutton('.$counter.', '.$row['OrderID'].')" >'."<center>".$row['OrderID']."<br>"."</center>".'</Button>';
Run Code Online (Sandbox Code Playgroud)

该按钮调用javascript函数clickedbutton并为其指定按钮的编号和该按钮的orderid.

function clickedbutton(buttonid,orderid){
buttonid = "button" + buttonid;

}
Run Code Online (Sandbox Code Playgroud)

此功能加载按钮的编号,并使其成为button0,button1等.sidid也成功通过.现在在我想调用外部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();
?>
Run Code Online (Sandbox Code Playgroud)

我知道mysqli保护和所有,我会稍后调整.现在我想集中讨论上面的问题,如何调用变量orderid并将其传递给phpscript.

Sav*_*ova 20

编辑2018年

是的,我还活着.您可以使用fetchAPI代替jQuery.它被广泛支持,除了(猜猜谁?...)IE 11及以下,但有一个polyfill为此.享受现代编码.

支持fetch API

老答复

你将不得不使用AJAX.

单独的Javascript无法访问PHP脚本.您必须发出请求,将变量传递给PHP,对其进行评估并返回结果.如果您使用jQuery发送ajax请求相当简单:

$.ajax({
    data: 'orderid=' + your_order_id,
    url: 'url_where_php_is_located.php',
    method: 'POST', // or GET
    success: function(msg) {
        alert(msg);
    }
});
Run Code Online (Sandbox Code Playgroud)

你的PHP脚本应该得到如下的订单ID:

echo $_POST['orderid'];
Run Code Online (Sandbox Code Playgroud)

输出将作为字符串返回到success函数.

编辑

您还可以使用速记功能:

$.get('target_url', { key: 'value1', key2: 'value2' }).done(function(data) {
    alert(data);
});

// or eventually $.post instead of $.get
Run Code Online (Sandbox Code Playgroud)