jQuery AJAX POST到当前页面的属性

时间:2014-06-12 01:44:26

标签: php jquery ajax

这是我自己的页面的一个例子。

<?php
$do = $_GET['do'];
switch($do){
case 'finalTask':
 if(isset($_POST['url'])){
   echo "It's Ok!";
 }else{
   echo "Problem!";
 }
}

这也写在同一页面上。

<input type='text' id='siteName'>
<button type='submit' id='send'>Send</button>
<div id='info'></div>
<script>
$(document).ready(function(e){
  $('#send').click(function(){
     var name = $('#siteName').val();
     var dataStr = 'url=' + name;

     $.ajax({
             url:"index.php?do=finalTask",
             cache:false,
             data:dataStr,
             type:"POST",
             success:function(data){
                  $('#info').html(data);
             }
     });
  });
});
</script>

当我尝试输入并按下发送按钮时。什么都没发生.....代码有什么问题?

2 个答案:

答案 0 :(得分:0)

您的页面中似乎没有表单,只是表单元素。你能用一种形式包装它们:

<form method="POST" onSubmit="return false;">
    <input type='text' id='siteName'>
    <button type='submit' id='send'>Send</button>
</form>

答案 1 :(得分:0)

  • 确保文件名为 index.php
  • 您需要确保在输入表单和
  • 时检查php代码
  • ajax post request的格式在您的情况下不正确。
  • 您忘记导入JQuery JS脚本,但没有您不能使用JQuery。 (至少在这个时间点)

-

<?php
if (!isset($_GET['do'])) { // Make sure that you don't get the form twice after submitting the data
    ?>
    <input type='text' id='siteName'>
    <button type='submit' id='send'>Send</button>
    <div id='info'></div>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script>
        $(document).ready(function (e) {
            $('#send').click(function () {
                var name = $('#siteName').val();
                var dataStr = 'url=' + name;

                $.ajax({
                    url: "index.php?do=finalTask",
                    cache: false,
                    data: {url: dataStr},  // you need to send as name:value format.
                    type: "POST",
                    success: function (data) {
                        $('#info').html(data);
                    }
                });
            });
        });
    </script>
<?php
} else {
    error_reporting(E_ERROR); // Disable warning and enable only error reports.
    $do = $_GET['do'];
    switch ($do) {
        case 'finalTask':
            if (isset($_POST['url'])) {
                echo "It's Ok!";
            } else {
                echo "Problem!";
            }
    }
}
?>