发布数据未被接收到数据库中,但使用javascript和php显示成功结果

时间:2017-06-20 03:09:54

标签: javascript php ajax

我实现了一种使用javascript在我的网页上提交表单的新方法,以便在不重新加载/刷新页面的情况下显示成功结果。我是Javascript的新手,我确信我错过了一些明显的东西。

我知道这不是由于数据库限制,我已经仔细检查以确保它不是某种外键错误。

我知道php post查询的工作原理,因为它仍然适用于我在实现javascript之前使用的原始表单。

新守则:

<div id="contact_form">
<form name="contact" action="">
  <fieldset>
    <input type="hidden" name="likesid" id="likesid" size="30" value="4" class="text-input" />

    <input type="hidden" name="likerid" id="likerid" size="30" value="117" class="text-input" />

      <br />

    <button style="width: 100%; border: none; background:none!important; background-color: transparent; cursor: pointer;" type="submit" name="unlikestatus" class="button" id="submit_btn">
    <i class="fa fa-thumbs-o-up fa-fw ss-large ss-text-blue"></i>
    </button>   

  </fieldset>
</form>

</div>
<script>
  $(function() {
    $(".button").click(function() {
      // validate and process form here
    });
  });

  $(function() {
    $('.error').hide();
    $(".button").click(function() {
      // validate and process form here

      $('.error').hide();
      var likesid = $("input#likesid").val();
        if (likesid == "") {
        $("label#likesid_error").show();
        $("input#likesid").focus();
        return false;
      }
        var likerid = $("input#likerid").val();
        if (likerid == "") {
        $("label#likerid_error").show();
        $("input#likerid").focus();
        return false;
      }

  var dataString = 'likesid='+ likesid + '&likerid=' + likerid;
  //alert (dataString);return false;
  $.ajax({
    type: "POST",
    url: "simpletest.php",
    data: dataString,
    success: function() {
      $('#contact_form').html("<div id='message'></div>");
      $('#message').html("<h2>Liked!</h2>")
      .hide()
      .fadeIn(1500, function() {
        $('#message').append("");
      });
    }
  });
  return false;   

    });
  });
</script>

我不确定javascript在这种情况下是如何工作的,但在PHP中,我正在使用这一行

if(isset($_POST['likestatus']))

我没有在我的javascript中看到任何指向“likestatus”的地方,我假设这可能是问题?有可能吗?

我收到了这个javascript代码并将其从here

更改了

1 个答案:

答案 0 :(得分:2)

PHP帖子请求正在您的表单上查找名称=&#39; likestatus&#39;的字段,该字段在上面的代码中不存在。要将该值传递给ajax调用,您需要先将该字段添加到HTML表单中。

您还需要将它添加到javascript变量dataString,该变量通过ajax传递给PHP调用。

说明:

ajax调用上的 data 属性定义了传递给指定的 url 属性的所有变量。如果ajax调用通过,它将触发 success 属性,这并不一定意味着数据已保存在数据库中。