我是编程新手,我正在玩htm / ajax / php。我有两个文本字段,名称和动物。您在名称字段中输入名称。如果该名称存在于数据库中,则返回与该名称相关联的所有动物,并且不允许将重复的动物输入动物区域。我正在使用LiveValidation进行验证。
到目前为止,我的名字字段工作正常。它正在检查数据库并返回与该名称相关的所有动物的昏迷分隔列表,并将它们插入结果div中。但是结果div仅用于测试。我想要的是结果列表填充列表:
//animal must not include
var animal = new LiveValidation('animal');
animal.add(Validate.Exclusion, {
within: [
// Insert ajax results here
'cow' , 'pigeon', 'giraffe',
]
} );
这是我的其余代码。我想我想要做的很简单,我只是不确定如何去做。感谢任何需要一些时间来帮助我的人。
HTML
<input type="text" id="name" name="name"/>
<input type="text" id="animal" name="animal" />
<div class="results"></div>
的JavaScript
<script>
//ajax call
$(function(){
$('#name').blur(function(){
var inpval = $('#name').val();
$.ajax({
type: 'POST',
data: ({name : inpval}),
url: 'name_taken.php',
success: function(data) {
$('.results').html(data);
}
});
});
});
//validation from livevalidation.com
//name must be present
var name = new LiveValidation('name');
name.add(Validate.Presence);
//animal must not include
var animal = new LiveValidation('animal');
animal.add(Validate.Exclusion, {
within: [
// How do I insert ajax results here?
'cow' , 'pigeon', 'giraffe',
]
} );
</script>
PHP
//name_taken.php
$input_name = trim($_POST['name']);
foreach($names_table as $row){
$name = $row['name'];
if($name == $input_name){
echo $row['animal'] . ',';
}
}
表格结构
//$names_table
| 1 | Dave | animal1 |
| 2 | Mark | animal2 |
| 3 | Dave | animal3 |
答案 0 :(得分:0)
使用您的ajax函数,您可以使用dataType
来设置返回数据类型
//animal must not include
var animal = new LiveValidation('animal');
var obj = {
within: [
'cow' , 'pigeon', 'giraffe',
]
};
animal.add(Validate.Exclusion, obj);
$.ajax({
type: 'POST',
data: ({name : inpval}),
dataType: 'json',
url: 'name_taken.php',
success: function(data) {
obj.within = new Array();
for(var i in data){
obj.within.push(data[i]);
}
animal.add(Validate.Exclusion, obj);
}
});
然后在你的php中你只需要像这样使用json_encode()
:
<?php
$array = array(1,2,3,4,5,6);
echo json_encode($array);