2016-03-18 68 views
1

我使用jQuery當一個選項被從下拉列表中選擇來改變輸入字段中的值。這些字段通過PHPjQuery的改變

<label><?php echo $size->size ?></label><input type="number" name="<?php echo $lineno ?>-<?php echo $size->id ?>" id="<?php echo $lineno ?>-size<?php echo $sizeblock; ?>" class="form-control" value="<?php echo $size->qty ?>" title=""> 

最初使用的值,這些值似乎是由jQuery的儘快覆蓋在網頁加載。如何在輸入字段中保留這些值,直到下拉列表值實際發生更改?我的js如下:

jQuery(document).ready(function($) { 

$("[id^=packs]").on('change', function() {    
var packname = this.value; 
console.log("packname:"+packname); 
var lineno = this.getAttribute('data-lineno'); 
console.log("lineno: "+lineno); 
$.ajax({ 
    type: "post", 
    url: "<?php echo base_url(); ?>products/pack", 
    cache: false, 
    // ContentType : 'application/json',    
    data: {name: packname}, 
    success: function(json){       
    try{   
     var obj = jQuery.parseJSON(json); 
     console.log(obj); 
     console.log("size1: "+obj.packdetail[0].size1); 

回答

0

您的發佈代碼只更改值,如果$("[id^=packs]")更改。也許還有另外一個你沒有提供的實際修改輸入的代碼。

也許你想試試你的瀏覽器調試程序(例如Chrome開發者工具)如果執行一些代碼來檢查。 只需在change-event-callback中添加一個debugger;,然後使用打開的調試器重新加載頁面。如果這個代碼部分被執行,它將停在那裏。

另一個possibilty是跟蹤所述屬性改變輸入字段(由PHP initally填充)。見 Set breakpoint to event in google chrome debugger

0

上面的代碼按預期工作。當保存表單的值時,我沒有更改與數據庫更新相對應的ID。因此,實際的數據庫字段的值爲0,這不是PHP問題。