1

我有一个表格,用户可以在其中输入要支付的租金金额。

<form action="search_results.php" method="get">
  <input type="text" name="rent" value="$" />
</form>

当用户输入他们的租金金额时,我正在使用 jQuery 在字段中保留美元符号。

$('input[name=rent]').keyup(function() {
   $(this).val(function(i,v) {
     return '$' + v.replace('$',''); //remove existing, add back.
   });
 });

当表单发送到 search_results.php 页面时,它会发送到带有以下 get 变量的 url:

http://www.domain.com/search_results.php?rent=%24

当页面开始加载时,它显示以下错误消息:

警告:mysqli_error() 需要 1 个参数,0 在 /nfs/c09/h01/mnt/12345/domains/www.domain.com/html/search_results.php 第 551 行给出

我很确定会发生错误,因为我的 sql 语句使用 $_GET['rent'] 变量对所有小于输入租金金额的列表进行排序,并且它不能使用美元符号来执行此操作。

如何在输入字段发送到 search_results.php 页面之前从输入字段中删除美元符号字符,或者如何从 search_results.php 页面上的 url 中删除 %24,然后重新加载页面?

4

4 回答 4

2

尝试这个:

$('form').submit(function(){
  $('input[name=rent]').val($('input[name=rent]').val().replace('$', ''))
})
于 2012-07-13T18:37:49.637 回答
1

这应该有效:

$('form').submit(function(){
  $('input[name=rent]').val(function(index, valueWith$){
    return valueWith$.substring(1);
  });
  return true;
});
于 2012-07-13T18:36:31.607 回答
1

好吧,这里有一个更好的解决方案——你可以在他通过后过滤数据:

$rent = str_replace('$','',$_GET['rent']);
$rent = str_replace('%24','',$rent);

顺便说一句-我建议您了解有关 SQL 注入的更多信息。

于 2012-07-13T18:38:25.407 回答
0

发生此错误是因为您没有为其提供 mysqli 资源。

if (!mysqli_query($link, $query)) {
   printf("Errormessage: %s\n", mysqli_error($link));
}

你只是这样调用这个函数:mysqli_error();

于 2012-07-13T19:18:58.443 回答