使用jQuery从PHP发布回复?

时间:2015-09-23 00:14:23

标签: javascript php jquery html

如何将一些文本发布到php文档然后php doc检查它并返回响应?

在此示例中,检查输入的值是否为“test”,然后返回并提示TRUE,否则返回并提示FALSE。

HTML / javascript (test_php_response.html)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test_response</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">

function post_to_php() {

$.post( "test_response.php", function( data ) {
  if (data == true){
      alert("true");
  }else{
     alert("false");
  }
});

}

</script>
</head>


<body>
<a href="javascript:post_to_php();" class='button'>click_here</a>
<form name="response_form"  id="response_form" action="test_response.php" method="POST">
        <input id="response_form_textbox" name="response_form_textbox" type="text"  >
    </form>
</body>
</html>

PHP (test_response.php)

<?php
$text_field = $_POST['response_form_textbox'];
if ($text_field == 'test'){
    echo 'true';
}else{
    echo 'false';
}
?>

DEMO

----编辑解决/工作版本如下:-----

HTML / JavaScript的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test_response</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">

function post_to_php() {

$.post( "test_response.php", $('#response_form').serialize(), function(data) {
  if (data === "true"){
      alert("true");
  }else{
     alert("false");
  }
});

}

</script>
</head>


<body>
<a href="javascript:post_to_php();" class='button'>click_here</a>
<form name="response_form"  id="response_form" action="test_response.php" method="POST">
        <input id="response_form_textbox" name="response_form_textbox" type="text"  >
    </form>
    v.05
</body>
</html>

PHP

   <?php
    $text_field = $_POST['response_form_textbox'];
    if ($text_field == 'test'){
        echo 'true';
    }else{
        echo 'false';
    }
    ?>

1 个答案:

答案 0 :(得分:2)

您没有发送任何数据。 $.post的第二个参数是针对该数据但您省略了它。

因此在您的php $_POST中将为空。

发送表单数据的最简单方法是使用serialize()

$.post( "test_response.php", $('#response_form').serialize(), function( data ) {
  if (data){
      alert("true");
  }else{
     alert("false");
  }
});

参考: