2017-05-22 58 views
0

我有一個$ .ajax()請求正常工作,它調用3個ID。沒有問題的唯一ID是名稱ID。 clientId在控制檯上記錄的很好,但在表格上打印未定義。該URL正在打印表格和控制檯上的[對象HTMLInputElement],日誌如下<input class="form-control no-border" type="text" id="redirectUrl" name="url" placeholder="http://stuffpage/redirect/?id=1" required="">。我想要打印我在輸入中引入的url。

你能告訴我是什麼問題嗎?

$('#saveButton').on('click', function() { 
 

 
    var url = "http://stuffpage.com/redirect/redirect"; 
 

 
    var name = $('#name').val(); 
 
    console.log("name", name); 
 
    var clientId = $('#clientId').val(); 
 
    console.log("clicentId", clientId); 
 
    var redirecUrl = $('#redirectUrl').val(); 
 
    console.log("redirectUrl", redirectUrl); 
 

 
    var formData = new FormData(); 
 
    formData.append('name', name); 
 
    formData.append('client_id', clientId); 
 
    formData.append('url', redirectUrl); 
 
    console.log('test') 
 
    $.ajax({ 
 
    url: url + "/saveRedirect", 
 
    type: "POST", 
 
    dataType: "json", 
 
    data: formData, 
 
    contentType: false, 
 
    cache: false, 
 
    processData: false, 
 
    success: function(obj) { 
 
     var name, clientId, redirecUrl; 
 
     var rows = ''; 
 
     for (i = 0; i < obj.length; i++) { 
 
     rows += "<tr class='lightgrey'><th>" + obj[i].name + "</th><td>" + obj[i].clientId + "</td><td>" + obj[i].url + "</td><td><img id='editButton' class='col-md-2 edit nopad' src='http://stuffpage.com/redirect/public/img/edit.svg'><img class='col-md-2 link nopad float-right' src='http://stuffpage.com/redirect/public/img/copy.svg'></td></td></tr>"; 
 
     $("#table").append(rows); 
 
     console.log('sucess!'); 
 
     } 
 
    }, 
 
    error: function() { 
 
     console.log('error'); 
 
    } 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<div class="col-md-12 marg-t-30 nopad"> 
 
    <!--REGISTER NAME CLIENT ID URL--> 
 
    <div class="col-md-1 nopad"> 
 
    <div class="rtitle"> 
 
     <div class="roboto-condensed">name</div> 
 
    </div> 
 
    </div> 
 
    <div class="col-md-3 nopad" style="margin-right: 20px;"> 
 
    <input class="form-control no-border" id="name" type="text" name="nameClient" placeholder="Insert name..." required=""> 
 
    </div> 
 
    <div class="col-md-1 nopad"> 
 
    <div class="rtitle"> 
 
     <div class="roboto-condensed">client id</div> 
 
    </div> 
 
    </div> 
 
    <div class="col-md-3 nopad"> 
 
    <select class="form-control no-border selectpicker" name='clientId' id='clientId' data-show-subtext="true" required=""> 
 
\t \t \t \t \t \t <?php echo $client_data;?> 
 
\t \t \t \t \t </select> 
 
    </div> 
 
    <div class="col-md-3 nopad"> 
 
    <button id="saveButton" class="save float-right">SAVE</button> 
 
    </div> 
 
    <div class="col-md-12 nopad marg-t-20"> 
 
    <div class="col-md-1 nopad"> 
 
     <div class="rtitle"> 
 
     <div class="roboto-condensed">url</div> 
 
     </div> 
 
    </div> 
 
    <div class="col-md-11 nopad"> 
 
     <input class="form-control no-border" type="text" id="redirectUrl" name="url" placeholder="http://stuffpage/redirect/?id=1" required="" value=""> 
 
    </div> 
 
    </div> 
 
</div> 
 
<!--col-md-12-->

+0

? –

+0

不,你可以看到我沒有使用JSON.parse(obj)的代碼。我應該使用它嗎? – Timmy

+0

@ScottMarcus你不需要解析JSON,jQuery已經爲你做了。 – Terry

回答

1

看起來你有一個錯字:

var redirecUrl = $('#redirectUrl').val();

應該

var redirectUrl = $('#redirectUrl').val();

+0

有斑點。問題應該關閉,所以我不會投票 – mplungjan

+0

唉! Omg這是一件小事!謝謝!但clientId在表格中顯示爲未定義,並且在控制檯中記錄正確。你能告訴我爲什麼會發生這種情況嗎? – Timmy

+0

您是否在成功回調中引用了'obj [i] .clientId'?我無法看到您返回的數據。您可以嘗試在回調'console.log(obj);'中記錄返回的數據,以驗證clientId是否按預期返回 –

0

您可以更換

var clientId = $('#clientId').val();

給你不使用`JSON.parse(OBJ)`對AJAX結果

var clientId = $('#clientId option:selected').val();

而且

var redirectUrl = $('#redirectUrl').val();

+0

我發現問題了!在成功的結果上,這個'obj [i] .clientId'應該像這樣'obj [i] .client_id'。非常感謝! :) – Timmy

相關問題