2015-12-13 174 views
0

我想更改更新操作的URL。 URL的結束點應該從輸入中獲取。我怎樣才能做到這一點?以下不起作用。如何更改網址

$(document).ready(function(){ 
 
     
 
     $.fn.serializeObject = function() 
 
{ 
 
    var o = {}; 
 
    var a = this.serializeArray(); 
 
    $.each(a, function() { 
 
     if (o[this.name] !== undefined) { 
 
      if (!o[this.name].push) { 
 
       o[this.name] = [o[this.name]]; 
 
      } 
 
      o[this.name].push(this.value || ''); 
 
     } else { 
 
      o[this.name] = this.value || ''; 
 
     } 
 
    }); 
 
    return {"issue":o}; 
 
};
<form role="form"> 
 
    <div class="form-group input-group"> 
 
     <div class="row"> 
 
     <div class="col-md-6"> 
 
     <label>Issue ID * &nbsp;</label> 
 
     <select class="form-control selectclass" id="issueid"></select> 
 
     </div> 
 
     <div class="col-md-6"> 
 
     <label>Tracker * &nbsp;</label> 
 
     <select class="form-control" name="tracker" id="tracker"> 
 
      <option value="1">Bug</option> 
 
      <option value="2">Feature</option> 
 
      <option value="3">Support</option> 
 
     </select> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    <div class="form-group"> 
 
     <label>Subject &nbsp;</label> 
 
     <input class="form-control" placeholder="Issue Subject" name="subject" id="subject"> 
 
    </div> 
 
    <div class="form-group"> 
 
     <label>Description</label> 
 
     <textarea class="form-control" rows="6" name="description" id="description"></textarea> 
 
    </div> 
 
    <button type="submit" id="submit" class="btn btn-default">Submit Button</button> 
 
    <button type="reset" class="btn btn-default">Reset Button</button> 
 
    </form>

$('#submit').on('click', function(){ 
 
      var x=document.getElementById('issueid').value; 
 
      $.ajax({ 
 
       type : 'PUT', 
 
       
 
       url: 'http://localhost/redmine/issues'+ x +'.json', 
 
       
 
       
 
       contentType:'application/json', 
 
        
 
       data:JSON.stringify($('form').serializeObject()), // post data || get data 
 
       success : function(msg, status, jqXHR) { 
 
        console.log(msg, status, jqXHR); 
 
        
 
       }, 
 
       error: function(xhr, resp, text) { 
 
        console.log(xhr, resp, text); 
 
       } 
 
      }) 
 
      console.log(x); 
 
     }); 
 
    
 
});

輸入被從一個形式得到並將其發送到管理平臺API。 URL應該像下面,http://localhost/redmine/issues/2.json

+0

什麼是您的服務器端?你爲什麼在一個json文件上使用PUT? –

+0

你可以添加HTML結構嗎? –

+3

''不起作用'是什麼意思?你有錯誤嗎?什麼錯誤?你會得到不同於你預期的行爲嗎?你在窗體上是否有ID爲'issueid'的元素? – dotnetom

回答

1

當動態填充您的id="issueid"選擇,確保你正確設置value屬性的選項:

$('.selectclass').append('<option value="' + value.id + '">' + value.id + '<option>'); 

而且修復你的下一個AJAX請求的URL添加一個尾隨/issues

url: 'http://localhost/redmine/issues/' + x + '.json'