我知道这需要使用AJAX,但我不知道从哪里开始。
<td class="dataTableContent" valign="top">
<div>
<input id="<?php echo " update_products[ " . $orders_products_id . "] [backorder_date] "; ?>" name="<?php echo " update_products[ " .
$orders_products_id . "][backorder_date] "; ?>" size="10" ?>onChange="backorderDate('
<?php echo $orders_products_id; ?>')" value='
<?php echo tep_date_short($order->products[$i]['backorder_date']); ?>'>
</div>
</td>
所以我这里有一个输入框,要求用户输入一个延期订单日期,如果他们的产品有一个。现在,如果您注意到我有一个事件激活此输入框的函数onChange。
function backorderDate(pid)
{
<?php
$prod_id = "<script language='JavaScript'>pid;</script>";
echo $prod_id;
$query_send = tep_db_query("SELECT backorder_date from pos_products WHERE
orders_products_id= '$prod_id' ORDER BY backorder_date DESC");
$final = tep_db_fetch_array($query_send);
?>
alert("There has been a change to the Back Order Date and this may
change the In Stock checkbox.");
alert("<?php echo $final; ?>");
}
然后如上所示,这是被调用的函数。我将变量从输入框传递给函数,并将其命名为“pid”。然后这是问题的开始。我需要该变量的内容才能在查询中调用正确的信息。显然,我所遇到的是错误的,而且很可能需要AJAX。任何人都可以把我推向正确的方向吗?
答案 0 :(得分:0)
你不能从这样的javascript做SQL。它不仅不可能,而且存在巨大的安全风险。假设PHP正确输出输入,请将您的javascript函数更改为如下所示:
function backorderDate(pid)
{
$.ajax ({
url: "backend.php",
data: pid,
success: function(data) {
///do whataever you want here
}
})
}
然后创建一个名为backend.php的PHP文件,您可以在其中执行查询,处理结果并将数据发送回jQuery函数。
编辑:
再看一遍,我不确定你在这里做了什么:
<input id="<?php echo " update_products[ " . $orders_products_id . "] [backorder_date] "; ?>" name="<?php echo " update_products[ " .
$orders_products_id . "][backorder_date] "; ?>" size="10" ?>onChange="backorderDate('
<?php echo $orders_products_id; ?>')" value='
<?php echo tep_date_short($order->products[$i]['backorder_date']); ?>'>
你可能意味着这样的事情? :
<input id="<?php echo $update_products[orders_products_id][backorder_date]; ?>"
name="<?php echo $update_products[orders_products_id][backorder_date]; ?>"
size="10"
onChange="backorderDate('<?php echo $orders_products_id; ?>')"
value='<?php echo tep_date_short($order->products[$i]['backorder_date']); ?>'>
如果没有看到更多代码,我无法解读所有这些变量的来源。
答案 1 :(得分:0)
我不是PHP wiz,但我猜你的JS函数中的PHP会被解析,并且在实际运行该函数时不存在。因此,script
标记是不必要的。
function backorderDate(pid) {
<?php echo $prod_id ?> = pid;