我正在尝试检查字段是否仅在提交表单之前存在于db中。
因此,我将keyup事件添加到该字段,以便从db
获取ajax
的数据。
所以我在表格中添加了这段代码:
$(document).ready(function (){
$("#matricola").keyup(function () {
$.ajax({
type:"get",
url: "getMatricolaAjax.php",
data: {'type':'user', 'matricola':$("#matricola").val()},
dataType: "text",
success: function(result){
console.log("OK");
$("#matricola").val("");
alert("Matricola "+ result +" già presente!!");
},
error: function(){
console.log("KO");
}
});
});
});
这是我的getMatricolaAjax.php
:
<script src='js/jquery-2.1.4.js' type="text/javascript"></script>
<?php
require_once 'config.php';
require_once FUNCTION_PATH.'/dbFunction.php';
if($_GET['type'] == "user"){
$queryMatricolaMatch = 'select * from user where matricola = "'.$_GET['matricola'].'"';
}else{
$queryMatricolaMatch = 'select * from 150ore where matricola = "'.$_GET['matricola'].'"';
}
echo $queryMatricolaMatch;
$conn = dbConnect($USERDB, $PASSWORDDB, $NAMEDB);
$matricola = dbQueryGetResult($queryMatricolaMatch);
dbDisconnect($conn);
echo $matricola;
它适用于result
的{{1}}中的所有html
来自getMatricolaAjax.php
的代码。
为什么?
我怎样才能获得matricola
??
答案 0 :(得分:0)
评论或删除dataType: "text"
,然后重试。
$.ajax({
type:"get",
url: "getMatricolaAjax.php",
data: {'type':'user', 'matricola':$("#matricola").val()},
// dataType: "text",
success: function(result){
console.log("OK");
$("#matricola").val("");
alert("Matricola "+ result +" già presente!!");
},
或者你可以在PHP中使用json_encode()来获取数据作为JSON对象数组。
答案 1 :(得分:0)
在提交表单之前,您应该使用POST检查数据库中的值。
public function actionView($id) {
\Yii::$app->view->params['layoutvars'] = ['id' => $id];
return $this->render('view', ['model' => $model]);
}
和php文件
$id = \Yii::$app->view->params['layoutvars']['id'];
这应该可行,但我不知道dbQueryGetResult应该做什么,所以你也应该发布它。 注意:如果您使用PDO编辑删除&#39; real_escape_string&#39;功能和使用其他消毒方法