查询和javascript变量的问题

Issue with query and javascript variable

本文关键字:问题 变量 javascript 查询      更新时间:2023-09-26

我知道这需要使用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。有人能给我指路吗?

我不是PHP奇才,但我猜JS函数中的PHP会被解析,并且在函数实际运行时不存在。因此,不需要添加script标签。

function backorderDate(pid) {
    <?php echo $prod_id ?> = pid;

你不能从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']); ?>'>

如果没有看到更多的代码,我真的无法破译所有这些变量是从哪里来的