2013-08-16 105 views
1

這是我有什麼(多次修訂後)DB需要更新與選擇使用jQuery

<script type="text/javascript"> 
$(document).ready(function() { 
    $("select.status").change(function() { 
     var myid = $(this).attr("id"); 
     var mystatus = $("#" + myid).val(); 
     var dataString = 'id=' + myid, 
      'status=' + mystatus; 
     $.ajax({ 
      type: "POST", 
      cache: false, 
      url: "inc/editfields.php", 
      data: dataString, 
      dataType: "html", 
      success: function() { 
       $('#statusmsg').html(data).hide().fadeIn(1500, function() { 
        $('#statusmsg'); 
       }); 
      }, 
      error: function (xhr, err, e) { 
       alert("Error: " + err); 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 

和SELECT語句,其從DB獲得一個唯一的ID他們被抓住的時候。

<select class="status" id="status<? echo $id;?>"> 
<option value="Vrij"<? if ($regiodata["status"]=='Vrij') echo " selected";?>>Vrij</option> 
<option value="Bezet"<? if ($regiodata["status"]=='Bezet') echo " selected";?>>Bezet</option> 
<option value="Optie"<? if ($regiodata["status"]=='Optie') echo " selected";?>>Optie</option> 
</select><div id="statusmsg"></div> 

但是,它嘗試所有類型的東西后小時數小時不起作用。任何人都可以幫助我在這裏可能是錯的?我拉出來之前任何更多的我的頭髮 - :)

+0

...你缺少一個符號或什麼? 'var dataString ='id ='+ myid,'status ='+ mystatus;'應該是'var dataString ='id ='+ myid +'&status ='+ mystatus;' –

+0

什麼是您的php文件?你想做什麼?從選擇填充或更新? –

+0

@PedroEstrada這也是一個語法錯誤。需要連接字符串,逗號不屬於。 –

回答

2
var dataString = 'id=' + myid, 
     'status=' + mystatus; 

應該是:

var dataString = 'id=' + encodeURIComponent(myid) + 
       '&status=' + encodeURIComponent(mystatus); 

但是這將是更好的事:當你使用一個對象作爲

var dataString = { id: myId, 
        status: mystatus 
       }; 

data:參數到jQuery.ajax(),它會自動編碼參數。

不相關的問題,而是:

$("#" + myid).val() 

可以簡化爲:

$(this).val() 

this.value 
在dataString
+0

很棒,它的工作原理!謝謝你! –

+0

只有消息沒有顯示在預期的位置。那裏還有什麼不對嗎? –

+0

我看到的唯一奇怪的事情是,fadeIn completion函數不會執行任何操作。但我不認爲這應該阻止淡入淡出效果。 – Barmar