jquery-ajax:将值从文本字段传递到php文件并显示值

时间:2011-09-21 08:23:47

标签: php html jquery

的index.html

    <html>
<head>
</head>
<body>


        <input type="text" id="inputtext"><input type="button" value="submit "id="submit">
                <br>                
        <div id="response">
        </div>


    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="thescript.js"></script>
</body>
</html>

thescript.js

$(document).ready(function(){

    $("#submit").click(function(){

        var dataString = $("#inputtext").val();



           $.ajax({
             type: "POST",
             url: "greet.php",
             data: dataString,
             success: function(){
                 $("#response").load("greet.php");
              }
           });   


    });




});

greet.php

<?PHP

print "hello " . $_POST['dataString'];

?>

在加载greet.php时,应显示在文本字段中输入的值。不确定为什么它不起作用

5 个答案:

答案 0 :(得分:1)

$ .ajax已经返回“你好”。然而,当您的页面收到它时,它会再次查询“greet.php”。

 $.ajax({
             type: "POST",
             url: "greet.php",
             data: dataString,
             success: function (response) {
                 $("#response").append(response); // or .html(response)
              }
           });   

或更好:使用.post();

$.post("greet.php", dataString, function (response) {
    $("#response").append(response); // or .html(response)
});

最后,您的提交按钮是否在表单中,并且您处理点击事件,如果您想留在页面上而不是重新加载,则您应该阻止表单在点击时提交。

$("#submit").click(function(event) {
    event.preventDefault();
    // stuff
    return false;
});

答案 1 :(得分:1)

我认为它可以更容易:

$("#submit").click(function()
{
    var dataString = $("#inputtext").val();

           $.ajax({
             type: "POST",
             url: "greet.php",
             data: "dataString=" + dataString,
             success: function(result){
                 $("#response").html(result);
              }
           });   
    });

对于php:

<?PHP
if(isset($_POST["dataString"]))
{
    echo "hello " . $_POST['dataString'];
}
?>

答案 2 :(得分:1)

我认为您没有正确调用jQuery .ajax。来自jQuery文档:

  

要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值(如下所述)。

你希望以密钥/值格式传递params作为数据,而不仅仅是数据。这样你可以在php中访问它,因为'dataString'代替传递data: "dataString=" + dataString

答案 3 :(得分:0)

$(document).ready(function(){

    $("#submit").click(function(){

        var dataString = $("#inputtext").val();

                 $("#response").load("greet.php"+ dataString );
              });   


    });

答案 4 :(得分:0)

试试这个;

$("#response").load("greet.php", {dataString : dataString});