Php Can';提交此表单后,似乎无法阻止页面刷新

Php Can';提交此表单后,似乎无法阻止页面刷新,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,好吧,我花了一段时间在互联网上搜寻我似乎是一个简单的解决方案。 我将向您展示我一直在研究的代码和ajax模板 <form style="padding:10px 2px;" name="test" class="searchform" action="#" method="GET"> <input style="margin-top:22.5px;" name="input_value" type="text" class="searchbx" size="" placehol

好吧,我花了一段时间在互联网上搜寻我似乎是一个简单的解决方案。 我将向您展示我一直在研究的代码和ajax模板

<form style="padding:10px 2px;" name="test" class="searchform" action="#" method="GET">
<input style="margin-top:22.5px;" name="input_value" type="text" class="searchbx" size="" placeholder="Search songs..." />
<select name="cbb">
<?php
echo "<option value='artist'>$Artist</option>";
echo "<option value='name'>$Title</option>";
?>
</select>
<input id="sa" style="position:absolute;margin-top:35px;width:90px;" name="submit" type="submit" class="searchbutton" value="OK" />
</form>
<div id="sidebar-query-results">
         <ul id="current-list" style="list-style: none; padding: 0;">
<?php
if (isset($_GET['submit']))
{
// Execute this code if the submit button is pressed.
if (empty($_GET['input_value'])) {
die();
}
include "db_config.php";

$input_value = $_GET['input_value'];
$combo_box_value = $_GET['cbb'];
echo $formvalue;
echo $cbbvalue;
$query =  "SELECT * FROM `links` WHERE `$combo_box_value` LIKE '%$input_value%' LIMIT 0, 20" ;   
$result = mysql_query($query);
if($result) {
while($row = mysql_fetch_assoc($result)){
$cover = $row['cover'];
$title = $row['title'];
$name = $row['name'];
$artist= $row['artist'];
$url = $row['url'];


这是因为脚本实际上导致了语法错误,因此AJAX绑定没有按预期发生(整个
被拒绝,因此它没有绑定到提交事件,也没有调用
.preventDefault()
)——主要原因是:

url : #.action,
尝试将其更改为使用:

url : $(this).prop('action')
(如果要引用
属性),则使用类似
url:'/submit.php',

更通用的脚本可能类似于:

$('form.ajax').on('submit',function(e){
  var $form = $(this);
  $.ajax({
    'type': $form.prop('method'),
    'url': $form.prop('action') || document.location,
    'data': $form.serialize(),
    'success': function(response){
      // handle response
    }
  });
  e.preventDefault();
});

然后,您可以将
ajax
类添加到任何希望使用ajax增强的表单中(当然,那些不支持javascript的表单将默认返回“传统”方法)。

撇开“Scruffiness”不谈,它目前很容易受到SQL注入的攻击。至少,您必须在
$input\u value
上调用
mysql\u real\u escape\u string()
。我知道它在某个地方很容易受到攻击,我会很快解决的,谢谢!而且,是的,它很脆弱,尽管安全性目前不是我真正关心的问题。。它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,。啊,谢谢!虽然有一个问题(如果你还在这里的话)“action”是否指的是php脚本,但这正是我想要的?方法是指GET还是POST?是的。它们是应用于
标记的标准属性,
操作
是提交的目的地(如果未提供,浏览器将使用同一页面),而
方法
获取
/
发布
。只是要小心,因为使用带有文件输入(
)的ajax提交表单不会有那么好的效果。顺便说一下,我还想看看SQL语句的
PDO
。注射攻击的空间更小,有时更容易处理。
$('form.ajax').on('submit',function(e){
  var $form = $(this);
  $.ajax({
    'type': $form.prop('method'),
    'url': $form.prop('action') || document.location,
    'data': $form.serialize(),
    'success': function(response){
      // handle response
    }
  });
  e.preventDefault();
});