2014-08-23 4 views
0

Целью является изменение invioce на основе значения invoice_id, полученного от выбора конкретного счета-фактуры из таблицы списков счетов. Поскольку это форма редактирования, связанные с фактурой детали должны быть предварительно загружены из базы данных.Запуск функции после загрузки значения переменной PHP

Код выглядит следующим образом:

$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)"/> 

Любые предложения были бы очень полезны !!

+0

Итак, ваша проблема в Javascript, да? –

+0

@MostafaTalebi Yep..Поскольку я получаю намеченный вывод, но скрипт должен работать без onblur или любого события. Я тоже пытался подготовить документ к jquery, но не использовал его, не работая. – Starter

ответ

0

вы пробовали это:

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; 
       }); 
      } 
     } 

} 


} 

Я добавил window.onload событие в функцию JS, чтобы убедиться, что каждый элемент загружается.

+0

Нет, его не работает. Даже предполагаемого выхода теперь не приходит. – Starter

Смежные вопросы