【问题标题】:My ajax code can't send values to other php page [duplicate]我的 ajax 代码无法将值发送到其他 php 页面 [重复]
【发布时间】:2016-11-16 10:59:11
【问题描述】:

我测试了我的 update.php 文件,它运行良好,当我通过控制台检查我的脚本时没有任何错误。唯一的问题在这里。 Ajax 无法将值“id”“comment_area”发送到 update.php 文件。这里有什么错误?

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.2.min.js">
$(document).ready(function() {
  $("#b_news").submit(function(evt) {
    evt.preventDefault();

    var text = $('#breaking_news_text').val();
    var id = 21;
    $.ajax({
      type: "POST",
      url: "update.php",
      data: {
        comment_area: text,
        id: id
      },
      success: function() {
        alert("sucess");
      }
    });
  });
});



</script>

<form id="b_news" method="post" action="">
  <div>
    <div>
      <textarea id="breaking_news_text" class="breaking_news_text" rows="6" cols="50" placeholder="Add text here..." required></textarea>
    </div>
  </div>
  <div>

    <input type="button" id="save" value="Save Changes" />

  </div>
</form>

<?php 
include("./inc/connect.inc.php");

$id=$_POST['id'];
$update = $_POST['comment_area'];
$sql = "update comments set comment_area='$update' Where id='$id'";
$result = mysqli_query($mysqli, $sql)or die("error");

     


?>

【问题讨论】:

  • 显示 php 代码。做了任何基本的调试吗?也许有一个重定向并且您的脚本被称为 GET,并且 post 值丢失了。
  • var_dump($_SERVER['REQUEST_METHOD'], $_POST) 看看会发生什么。请注意,您很容易受到sql injection attacks 的攻击。
  • 尝试通过将其放入您的 PHP 脚本中进行调试,var_dump($_POST) 并确保您看到这两个参数。
  • 尝试发送您的数据序列化。 data: comment_area=${text}&amp;id=${id}
  • 仅供参考,您的 PHP 文件非常不安全。如果我向您发送一个带有id' OR ''=' 的POST 请求怎么办?

标签: javascript php ajax


【解决方案1】:

你有两个问题。

首先每个脚本元素只能有一个脚本。该脚本可以由src 属性引用,也可以位于开始标签和结束标签之间。

如果您尝试两者都做,就像您在这里一样,那么只有src 会受到尊重。

为您的两个脚本使用单独的 &lt;script&gt; 元素。


第二,你无法触发提交事件。提交表单时将触发提交事件,但您不能从文本区域或按钮执行此操作。用提交按钮替换按钮。

【讨论】:

  • 可以在没有任何按钮的情况下提交表单。尝试选择输入字段并在this fiddle 中按回车键。
  • 这不是他提到textarea的原因吗?
  • @Siguza — 他们可以,但正如我在答案中所说,问题中的表单只有一个文本区域和一个按钮。它没有文本输入。
  • 如果我删除 src 会出错。
  • 多么愚蠢的错误,我花了好几个小时才修复。
【解决方案2】:

在我看来,您的按钮根本无法提交表单,因为它的类型。 尝试更改按钮的类型属性以这种方式提交:

<input  type="submit" id="save" value="Save Changes"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    相关资源
    最近更新 更多