2012-11-29 70 views
0

首先讓我澄清一下,我是一個完全在AJAX和CodeIgniter上執行的代碼。通過AJAX獲取價值顯示它的元素CodeIgniter

我讀這篇文章開始,我想我明白了一些:

http://www.amitavroy.com/justread/content/articles/getting-ajax-data-using-views-codeigniter

我需要做的,是更新的形式Input Field改變select HTML元素時。

<select class="select" name="formulario"> 
    <?php 
    foreach($listaForms as $form) { 
    echo "<option value={$form}>{$form}</option>"; 
    } 
    ?> 
</select> 

我知道如何做到這一點:

1)使用jQuery,聽change()。 2)用POST創建ajax函數。 3)讓公共函數檢索數據。

好了,問題就在這裏......

在本教程中我讀的人得到的HTML響應。

我只需要一個值或許多值。在這種特殊情況下,我只需要一個值,即最後打印的數字(存儲在文本文件中)。

的問題是,我怎麼能確定我所需要的值,假設反應是:

LastPrintedNumber=>23 
OtherValue=>20 

我怎樣可以用JavaScript做正確地將確定我需要在響應中的值,然後改變它呢?

我想,一旦我確定並獲得值,我只需要更改輸入文本字段的value

謝謝!

回答

0

服務器的響應應該是JSON格式。使用PHP的json_encode函數。你的PHP(服務器端)代碼應該是這樣的:

// if it's a json request 
if(!empty($_POST['data']) && 'ajax' == $_POST['data']) 
{ 
    $res = array('LastPrintedNumber' => 23, 'OtherValue' => 20); 
    header('Content-type: application/json'); 
    echo json_encode($res); 
    exit; // no need to render the template 
} 

修改您的jQuery代碼,以便它可以處理/分析JSON響應:

$(function(){ 
    $('#formulario').change(function() { 
     $.ajax({ 
     type: 'POST', 
     url: '/migup', 
     data: {'data' : 'ajax', 'selectedValue' : $(this).val()}, 
     dataType: 'json', 
     success: function(val) { 
      console.log('LastPrintedNumber: ' + val.LastPrintedNumber); 
      alert('OtherValue:' + val.OtherValue); 
     }   
     }); 
    }); 
    }); 

希望有所幫助。乾杯!

+0

優秀!甚至比我想象的更簡單,所有事情都在.ajax函數中解決。謝謝! – JorgeeFG

+0

我測試過它,它工作的很好!再次感謝! – JorgeeFG

+0

不客氣!樂意效勞! –

相關問題