Php 使用ajax和event.preventDefault()问题提交表单
我有一个jquery/ajax表单,它具有Php 使用ajax和event.preventDefault()问题提交表单,php,jquery,ajax,events,event-handling,Php,Jquery,Ajax,Events,Event Handling,我有一个jquery/ajax表单,它具有event.preventDefault()。问题是,一旦我按enter键,我的输入字段就不会变为空。通常,当您在输入字段中按enter键时,它将执行表单中的“操作”,输入字段将清空。但现在,当我键入某些内容时,当我按enter键时,我的表单不会重置为空。我知道event.preventDefault()不执行表单中的正常“操作”,但我尝试不刷新页面,只使用ajax,这样它就可以在不刷新页面的情况下加载 --------------------jquer
event.preventDefault()
。问题是,一旦我按enter键,我的输入字段就不会变为空。通常,当您在输入字段中按enter键时,它将执行表单中的“操作”,输入字段将清空。但现在,当我键入某些内容时,当我按enter键时,我的表单不会重置为空。我知道event.preventDefault()不执行表单中的正常“操作”,但我尝试不刷新页面,只使用ajax,这样它就可以在不刷新页面的情况下加载
--------------------jquery-------------------(如下)
---------------ajax\u table\u edit.php-------------(如下)
同时,。我试图呼应成功,但那也行不通。有人能帮我找到这个问题的解决办法吗
谢谢你抽出时间 您必须自己用
jQuery:$(“#field”).val=”代码>
它不会输出你的信息,因为你没有抓住成功的正确变量。。您将其定义为html,它可能会被保留。。。请尝试调用它data,因为这是您在函数内部使用的
...
success: function(data)
{
$('.selector').html(data);
}
...
还有,为什么在php端有$id
代码?看起来它甚至没有被使用。而且,仅仅因为它的ajax并不意味着您可以安全地避免SQL注入,您就需要清理这个$\u POST['list']
变量。附带说明:不需要那个regex。您只需使用:$id=(int)$\u POST['id']代码>。检查firebug,是否进行了ajax调用?你得到答复了吗?有什么错误吗?谢谢,是的,我忘了拿出来。我知道我需要消毒。我想以后再做这些。但是你有什么建议可以用来消毒吗?谢谢again@andrewliu有很多帖子都是关于防止sql注入的,但对于初学者来说,至少使用mysql\u real\u escape\u字符串,对于其他评论中提到的应该是数字的内容,强制转换为int是好的,并且使用regex来确保数据是您期望的数据也是好的。
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";
}
...
success: function(data)
{
$('.selector').html(data);
}
...