使用AJAX和POST运行php脚本

时间:2017-07-29 11:44:46

标签: javascript php jquery ajax

我对AJAX很陌生。我使用返回HTML的javascript做了一些,但我正在努力处理我认为应该非常简单的事情。

我有一个带内联元素的标题:

<header>
  <span class="right_alignment">
    <a id="delete_work" href="">
      <input id ="work_id" type="hidden" value="<?php echo $work_id ?>"/>
      <i class="fa fa-plus" aria-hidden="true">
      </i>
    </a>
  </span>
</header>

我想将$ work_id发送到PHP脚本,该脚本执行删除数据库中此记录的MySQL查询。它必须是一个POST请求,因为它是一个内联元素,我不能使用表单。所以AJAX就是这样。这是我的尝试:

$( document ).ready(function() {
  $("#delete_work").click(function () {
    $.ajax({
      url: 'scripts/script-delete-work.php',
      type: 'POST',
      data: $('#work_id').val(),
    });
  });
});

现在script-delete-work.php不用担心我,所以很简单:

$edition_id = $_POST['work_id'];
echo $work_id;

但这种设置不起作用。我知道它是最简单的AJAX形式,但我无法确定如何发送数据或失败的内容。有什么帮助吗?

谢谢!

编辑 - 好的,我解决了数据问题。我现在拥有的是:

HTML

<span class="span_edit_right">
  <a id="delete_work" href="">
    <input id="work_id" type="hidden" value="<?php echo $work_id; ?>"/>
        <i class="fa fa-trash-o" aria-hidden="true">
        </i>
  </a>
</span>

脚本:

$( document ).ready(function() {
  $("#delete_work").click(function () {
    var val = $('#work_id').val();
    $.ajax({
      url: 'scripts/script-delete-work.php',
      type: 'POST',
      data: { "work_id" : val },
      success: function ()
      {
        alert("works!");
      }
    });
  });
});

PHP

<?php echo $_POST['work_id'];

当我点击#delete_work时,它会返回提醒"works",并重新加载页面,但不会显示包含<?php echo $_POST['work_id'];的网页。

5 个答案:

答案 0 :(得分:2)

请使用此代码

$( document ).ready(function() {
  $("#delete_work").click(function () {
    var val = $('#work_id').val();
    $.ajax({
      url: 'scripts/script-delete-work.php',
      type: 'POST',
      data: { "work_id" : val },
      success: function () 
      {

      }

    });
  });
});

在您的服务器端只是

echo $_POST['work_id'];

答案 1 :(得分:2)

解决!

问题显然是使用AJAX你不会被发送到另一个PHP页面,所以我看不到echo $_POST['work_id'];。但现在它有效,这是数据问题......

实际代码是:

<span class="span_edit_right">
    <a id="delete_work" href="">
        <input id="work_id" type="hidden" value="<?php echo $work_id; ?>"/>
        <i class="fa fa-trash-o" aria-hidden="true">
        </i>
    </a>
</span>

脚本:

$( document ).ready(function() {
  $("#delete_work").click(function () {
    var val = $('#work_id').val();
    $.ajax({
      url: 'scripts/script-delete-work.php',
      type: 'POST',
      data: { "work_id" : val },
      success: function ()
      {
        alert("works!");
      }
    });
  });
});

谢谢!

答案 2 :(得分:1)

您没有正确发送数据。您应该以javascript对象形式传递数据,即 {&#39; parameter_name&#39;:parameter_value} ,以下是代码。

$( document ).ready(function() {
  $("#delete_work").click(function () {
    var wrkId = $('#work_id').val();
    $.ajax({
      url: 'scripts/script-delete-work.php',
      type: 'POST',
      data: {'work_id':wrkId},
    });
  });
});

 $( document ).ready(function() {
  $("#delete_work").click(function () {
    var wrkId = $('#work_id').val();
    $.post('scripts/script-delete-work.php',{'work_id':wrkId},function(response){
    console.log(response);
    });
  });
});

答案 3 :(得分:0)

使用ajax成功函数。并返回$ edition_id而不是work_id

成功:功能(work_id)

答案 4 :(得分:0)

只是你没有得到复选框的值。

您忘记了.input:{ position:absolute; bottom:0; }中的;