如何在发送表单数据之前从get变量中删除字符?

时间:2012-07-13 18:32:50

标签: php jquery forms get

我有一个表单,用户输入要支付的租金金额。

<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页面时,它会发送到url,并附加以下get变量:

  

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 个答案:

答案 0 :(得分:2)

试试这个:

$('form').submit(function(){
  $('input[name=rent]').val($('input[name=rent]').val().replace('$', ''))
})

答案 1 :(得分:1)

这应该有效:

$('form').submit(function(){
  $('input[name=rent]').val(function(index, valueWith$){
    return valueWith$.substring(1);
  });
  return true;
});

答案 2 :(得分:1)

嗯,这是一个更好的解决方案 - 您可以在他通过后过滤数据:

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

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

答案 3 :(得分:0)

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

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

您只需调用此函数:mysqli_error();