2016-07-15 46 views
2

我有一个表单,用户可以输入用户名并显示与其对应的ID。我使用AJAX提交数据并显示结果(ID)而不刷新页面。来自AJAX提交的结果未显示

我在控制台中没有收到任何错误,但在提交表单后没有显示任何ID。

HTML:

<form method="post" id="form"> 
    <input type="text" id="username"> 
    <input type="submit"> 
<form> 

<div id="resulthere"></div> <!-- where the ID is supposed to be displayed --> 

AJAX/JQuery的:

<script> 
$(document).ready(function(){ 
    $("form#form").submit(function(event) { 
     event.preventDefault(); 
     var username = $("#username").val(); 

     $.ajax({ 
      type: "POST", 
      url: "result.php", 
      data: "username=" + username, 
      success: $("#resulthere").html(event) 
     }); 
    }); 
}); 
</script> 

PHP(results.php):

<?php 
if(!empty($_POST['username'])) { // checks to make sure the username isn't empty 
    $json = file_get_contents('http://example.com?username='.$_POST['username']); 
    $json2 = json_decode($json); 
    $id = $json2->ID; // gets the ID 
    echo $id; // displays the ID 
} 
?> 
+2

'成功:功能(数据){$( “#resulthere”)HTML(数据)。}' – mplungjan

回答

1

这行你输入的

<input type="text" id="username"> 

如果它有一个名称,它会更好, name属性用于引用JavaScript中的元素,或者在提交表单后引用表单数据。

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

,并在您的jQuery做这个

$(document).ready(function(){ 
    $("form#form").submit(function(event) { 
    event.preventDefault(); 
    var username = $("#username").val(); 

    $.ajax({ 
     type: "POST", 
     url: "result.php", 
     data: { "username": username }, 
     success: function (result) { 
     $("#resulthere").html(result)     
     } 
    }); 
    }); 
}); 

在阿贾克斯的代码,你有,

data: "username=" + username 

违反了jQuery语法,你所做的是将两者连接起来的字符串, “用户名”和来自输入#用户名的值。

data : { 
'username':username 
}, 

'username',是输入名字,而username是从输入

,而这其中,success: $("#resulthere").html(event)也违反语法,

进一步阅读的价值,你可以参考这个文档http://api.jquery.com/jquery.ajax/

+0

你能解释为什么它是更好地使用这种方法,而不是当前的请? –

+0

name属性用于引用JavaScript中的元素,或者在提交表单后引用表单数据。 – Fil

+0

我知道,但是我做得怎么样?这种方法更加兼容吗? –

0

只需更改

data: "username=" + username, 


data: { "username" : username },