如何在输入更改时发布到php,然后在内容div中获取结果

时间:2013-09-24 07:53:15

标签: javascript php jquery html ajax

我想做标题所说的内容,当数据输入到文本字段时,我希望将其发送到posttothis.php,然后将结果打印在内容div中。我似乎无法使其发挥作用。

testscript.html

<html>
<head>
<script type="text/javascript">
document.write("\<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'>\<\/script>");
</script>
</head>
<body>
<input type="text" name="text" id="text">
<div id="content" name="content">
<script>
$('#text').keyup(function(){
$.ajax({
    type: "POST",
    url: "posttothis.php",
    data: {text: $(this).val()},
    success: function(data)
            {
                $("#content").html(data);
            }
    });
});
</script>
</body>
</html>

posttothis.php

<?php
$testvar=$_POST['text'];
echo $testvar;
?>

由于

编辑:使用建议的修改更新了我的脚本,但仍然无法显示我在内容div中的文本框中输入的内容。要回答以下问题:我不想提交表单,我只想在每次更改时从中获取价值。控制台显示没有错误。

EDIT2:我更新了工作代码,可能会在将来帮助其他人。

4 个答案:

答案 0 :(得分:2)

您可以改为使用On Key up功能。

<input type="text" name="text" id="text">
<div id="content" name="content">
<script>
$('#text').keyup(function(){
$.ajax({
    type: "POST",
    url: "posttothis.php",
    data: {text: $(this).val()},
    success: function(data)
            {
                $("#content").html(data);
            }
    });
});
</script>

答案 1 :(得分:1)

为什么不试试jQuery post

实施例

   <input type="text" name="text" id="text">
    <div id="content" name="content">
    <script>
    $('#text').keyup(function(){
        $.post('posttothis.php', {text:$('#text').val()}, function(data) {
            $("#content").html(data);
        });
    });
</script>

答案 2 :(得分:0)

使用:

$('#text').keyup(function(){

而不是

$('#text').change(function(){

此外,您在数据属性

后缺少逗号(,)
data: {text: $('#text').val()},

答案 3 :(得分:0)

在数据之后加上“,”:{text:$('#text')。val()}

<input type="text" name="text" id="text">
<div id="content" name="content">
<script>
$('#text').change(function(){
    $.ajax({
        type: "POST",
        url: "posttothis.php",
        data: {text: $('#text').val()},
        success: function(data)
                {
                    $("#content").html(data);
                }
        });
});
</script>