在加载PHP变量值后触发函数

Trigger a function after a PHP variable value is loaded

本文关键字:函数 变量值 加载 PHP      更新时间:2023-09-26

目的是根据从发票列表表中选择的特定发票接收到的invoice_id值编辑发票。由于这是一个编辑表单,因此发票相关的详细信息应该从数据库中预先加载。

代码如下所示:

$invoice_id= base64_decode($_REQUEST['invoice_id']);
require_once '../model/invoice.php';
$obj=new Invoice();
$val=mysql_fetch_assoc($obj->getInvoiceDetailsForEdit($invoice_id));

隐藏的输入文本字段的HTML是:-

<input type="hidden" name="inv_no" id="inv_no" value="<?php echo $invoice_id ?>"/>

为了获得预选的类别而触发的脚本是:-

<script>
        function getSelectedCategory(inv_no){
            if(inv_no!==""){
               var request = $.ajax({
                   url: "../controller/invoice.php",
                   type: "POST",
                   data: {inv_no:inv_no,action:'get_selected_category'},  
                   dataType: "json"
               });
               request.done(function(json_return){ 
                   $('#category').val(json_return['category_code']);
               });  
               request.fail(function(jqXHR, textStatus) {
                   alert( "Request failed: " + textStatus );
                   return false;
               });
           }
        }
</script>

控制器代码:-

function getSelectedCategory(){
    $inv=$_POST['inv_no'];
    require_once '../model/invoice.php';
    $obj=new Invoice();
    $result=mysql_fetch_assoc($obj->getAllInvoiceDetailsForViewing($inv));
    echo json_encode($result);
    exit;
}

一切都工作完美,除了事实,我不知道该怎么做后运行脚本php变量$invoice_id正在加载,因为文本字段不能接受事件,因为它是一个隐藏的字段..

我已经将代码更改为类似于下面的代码,并发现它正在工作:

<input type="text" name="inv_no" id="inv_no" value="<?php echo $invoice_id ?> onblur="getSelectedCategory(this.value)"/>
任何建议都会很有帮助的!!

你试过了吗:

function getSelectedCategory(inv_no){
window.onload = function(){
if(inv_no!==""){
               var request = $.ajax({
                   url: "../controller/invoice.php",
                   type: "POST",
                   data: {inv_no:inv_no,action:'get_selected_category'},  
                   dataType: "json"
               });
               request.done(function(json_return){ 
                   $('#category').val(json_return['category_code']);
               });  
               request.fail(function(jqXHR, textStatus) {
                   alert( "Request failed: " + textStatus );
                   return false;
               });
           }
        }
}

}

我已经在JS函数中添加了window.onload事件,以确保每个元素都被加载。