我有一个表单,用户可以在其中输入要支付的租金金额。
<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,然后重新加载页面?
试试这个:
$('form').submit(function(){
$('input[name=rent]').val($('input[name=rent]').val().replace('$', ''))
})
这应该有效:
$('form').submit(function(){
$('input[name=rent]').val(function(index, valueWith$){
return valueWith$.substring(1);
});
return true;
});
好吧,这里有一个更好的解决方案-你可以在他通过后过滤数据:
$rent = str_replace('$','',$_GET['rent']);
$rent = str_replace('%24','',$rent);
顺便说一句,我建议你学习更多关于SQL注入的知识。
发生此错误是因为您没有向它提供mysqli资源。
if (!mysqli_query($link, $query)) {
printf("Errormessage: %s'n", mysqli_error($link));
}
您只是这样调用这个函数:mysqli_error();