一尘不染

Javascript函数发布并调用php脚本

mysql

在html中,我有几个按钮是针对具有特定状态的数据库中的每个对象自动创建的。每个按钮都有其自己的ID。

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

该按钮调用javascript函数clickedbutton,并为其提供按钮编号和该按钮的序号。

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

}

此函数加载按钮的编号,并使其成为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();
?>

我了解mysqli保护及所有方面,我将在以后进行调整。现在,我想集中讨论上面的问题,即如何调用变量id并将其传递给phpscript。


阅读 292

收藏
2020-05-17

共1个答案

一尘不染

编辑2018

是的,我还活着。您可以使用fetchAPI代替jQuery。除了(猜测是谁?…)IE
11及以下版本,它得到了广泛的支持,但是有一个polyfill。享受现代编码。

支持提取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);
    }
});

并且您的php脚本应获得如下的订单ID:

echo $_POST['orderid'];

输出将作为字符串返回到成功函数。

编辑

您还可以使用速记功能:

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

// or eventually $.post instead of $.get
2020-05-17