【问题标题】:submit form using ajax and event.preventDefault() problem使用 ajax 和 event.preventDefault() 问题提交表单
【发布时间】:2011-09-13 03:58:04
【问题描述】:

我有一个带有event.preventDefault() 的 jquery/ajax 表单。问题是,一旦我按下回车键,我的输入字段就不会变空。通常,当您在输入字段中按 Enter 时,它会在表单中执行“操作”并且输入字段为空。但是现在当我输入某些内容时,当我按下回车键时,我的表单不会重置为空。我知道 event.preventDefault() 不会在表单中执行正常的“操作”,但我试图不刷新我的页面而只使用 ajax,所以它会在不刷新页面的情况下加载。

--------------------jquery--------------------(下)

$('[placeholder]').parents('form').submit(function(event) {
  $(this).find('[placeholder]').each(function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
      input.val('');
    }

  });
  var input = $('input.sel').val();
  dataList = 'list=' + input;
    $.ajax({
        type: "POST",
        url: "ajax_table_edit.php",
        data: dataList,
        cache: false,
        success: function(html)
            {
                $('.selector').html(data);
            }
    });
    event.preventDefault();

});

---------------ajax_table_edit.php-----------(下)

if(isset($_POST['list'])){
$list = $_POST['list'];
$id = $_POST['id'];
$id = ereg_replace("[^0-9]", "", $id);

$sql = mysql_query("INSERT INTO table (column) VALUES ('".$list."')");

echo "success";

}

同时。我试图呼应成功,但这也不起作用。有人可以帮我寻求解决这个问题的方法吗?

感谢您的宝贵时间!

【问题讨论】:

  • 附带说明:不需要那个正则表达式。您可以简单地使用:$id = (int) $_POST['id'];
  • 检查萤火虫,ajax 调用已进行?你得到回应了吗?有什么错误吗?

标签: php jquery ajax events event-handling


【解决方案1】:

您必须自己使用jQuery: $("#field").val=''; 将字段清空

并且它没有输出您的消息,因为您没有在成功时获取正确的变量..您将其定义为 html 无论如何都可以保留...尝试将其称为 data ,因为这是您在里面使用的无论如何,该功能。

...
success: function(data)
           {
               $('.selector').html(data);
           }
...

另外,你为什么在 php 端还有 $id 代码?看起来它甚至没有被使用。而且,仅仅因为它的 ajax 并不意味着您可以免受 SQL 注入,您需要清理该 $_POST['list'] 变量。

【讨论】:

  • 谢谢,是的,我忘了把它拿出来。我知道我需要对其进行消毒。我正在考虑以后做这一切。但是你对用什么来消毒它有什么建议吗?再次感谢
  • @andrewliu 有很多关于防止在 SO 上注入 sql 的帖子,对于初学者来说,尽管至少使用 mysql_real_escape_string,并且将其他评论中提到的应该是数字的东西转换为整数是好的,并使用正则表达式确保数据符合您的预期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-13
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
相关资源
最近更新 更多