查询和javascript变量的问题
我知道这需要使用AJAX,但我不知道从哪里开始查询和javascript变量的问题,javascript,ajax,Javascript,Ajax,我知道这需要使用AJAX,但我不知道从哪里开始 <td class="dataTableContent" valign="top"> <div> <input id="<?php echo " update_products[ " . $orders_products_id . "] [backorder_date] "; ?>" name="<?php echo " update_products[ " . $o
<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。有人能把我推向正确的方向吗?你不能像这样从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']); ?>'>
如果没有看到更多的代码,我真的无法解释所有这些变量的来源。我不是PHP高手,但我猜JS函数中的PHP会被解析,并且在函数实际运行时不存在。因此,脚本标记是不必要的
function backorderDate(pid) {
<?php echo $prod_id ?> = pid;
很抱歉延迟了,但是如果javascript代码中没有type:post,我如何实际利用backend.php中的变量呢?我在这里忽略了什么吗?是的,在ajax参数中应该有一个类型:“Post”。对不起,我的疏忽。