2017-05-22 57 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

相关问题