【问题标题】:Pass value to a textbox use AJAX / JSON使用 AJAX / JSON 将值传递给文本框
【发布时间】:2018-07-17 00:54:20
【问题描述】:

我有以下脚本,并希望使用 AJAX 将值传递给文本框。

 <script>
    $(document).ready(function(){
    $("#searchName").change(function(){
             var name = $("#searchName").val();
    $.ajax({
        'url': 'ontwikkelpunten.php',
        'method': 'post',
        'data': 
        {
             naam: $("#searchName").val()
        },
        'dataType': 'json'
    }).done(function(data){
        console.log(data);
         $('#test').val(data.naam);


            });
        });
    });

<input type="text" id="test" name="">

当我更改 searchName 并在 Chrome 中检查控制台时,我看到了数组,但它仍然无法正常工作。

【问题讨论】:

  • length : 0 无论您在做什么,都没有在 dom 上找到该输入。我们在这里没有得到完整的视图。
  • @nerdlyist 你的console.log($("test")); 有错别字...忘记了# ;)
  • @Marvin 将 $('#test').val(data.naam); 更改为 $('#test').val(data[0].naam); ...我认为您的对象位于 1 元素数组包装器中。也许吧。
  • @Marvin 请在console.log($("#test")); 或忘记# 的1 处运行它
  • 你真的应该提出一个新问题。在 stackoverflow 上转移和改变主题被认为是偏离主题的。但是您只需将道具包装在if 语句中。 if ( data[0].aanvang ) { $("#aanvang").prop("checked",true); } else { $("#aanvang").prop("checked",false); }

标签: php html json ajax


【解决方案1】:

您的 JSON 返回是一个对象数组(在您的情况下,是一个包含对象的单个数组元素)。因此,当您尝试分配时:

$('#test').val(   data.naam   );
//                    ^--- direct object item reference

找不到要使用的正确元素,因为基本数组中不存在naam。相反,您需要调整它以首先引用数组元素,然后是对象元素:

$('#test').val(   data[0].naam   );
//                     ^--- first array element

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2017-08-14
    • 2016-02-07
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多