我有一个首页,其中包含具有4个不同字段的表单。到目前为止,我已经将此字段发布到了我的PHP处理程序中。在PHP方面,每个输入字段都有4个测试和4个else / if语句。问题是我的AJAX代码对所有4个测试都返回一个响应。因此,我可以在首页底部打印此响应。我想要的是在每个输入字段中显示4个单独的响应。
HTML:
<form action="javascript:void(0);">
<div>
<label>
<span>Item 1</span>
<select name="TestItem1">
<option>value1</option>
<option>value2</option>
<option>value3</option>
</select>
</label>
</div>
<div>
<label>
<span>Item 2</span>
<input type="text" name="TestItem2">
</label>
</div>
<div>
<label>
<span>Item 3</span>
<input type="text" name="TestItem3">
</label>
</div>
<div>
<label>
<span>Item 4</span>
<input type="text" name="TestItem4">
</label>
</div>
<div>
<button type="submit">Check</button>
</div>
</form>
<div id="result"></div>
AJAX通话
$(document).ready(function(){
$('form').submit( postgonder )
});
function postgonder()
{
$.post('result.php', $('form').serialize(),function(veri){$('#result').html(veri)});
}
PHP:
<?
$testitem1=$_POST['TestItem1'];
$testitem2=$_POST['TestItem2'];
$testitem3=$_POST['TestItem3'];
$testitem4=$_POST['TestItem4'];
$test1 = (some tests of $testitem1);
if(empty($testitem1)) {
echo "-";
}
else if($test1) {
echo "successful";
}
else {
echo "failed";
}
$test2 = (some tests of $testitem2);
if(empty($testitem2)) {
echo "-";
}
else if($test2) {
echo "successful";
}
else {
echo "failed";
}
$test3 = (some tests of $testitem3);
if(empty($testitem3)) {
echo "-";
}
else if($test3) {
echo "successful";
}
else {
echo "failed";
}
$test4 = (some tests of $testitem4);
if(empty($testitem4)) {
echo "-";
}
else if($test4) {
echo "successful";
}
else {
echo "failed";
}
?>
我的AJAX呼叫返回: 如果表单为空或“成功成功--”等,则为“失败---”。
答案 0 :(得分:2)
查看您对AJAX的处理结果:
function(veri){$('#result').html(veri)});
意味着您希望php返回一些格式化的HTML。
让它格式化!代替:
$test1 = (some tests of $testitem1);
if(empty($testitem1)) {
echo "-";
} elseif($test1) {
echo "successful";
} else {
echo "failed";
}
这样做:
$respArray = [];
$test1 = (some tests of $testitem1);
if(empty($testitem1)) {
$respArray['test1'] = "-";
} elseif($test1) {
$respArray['test1'] = "successful";
} else {
$respArray['test1'] = "failed";
}
对test2,test3等进行相同的转换。 这样,您将收集数组中的所有响应。 然后执行HTML输出:
$html = '';
foreach($respArray as $key=>$status){
$html.='<p>'.$key.' : '.$status.'</p>';
}
echo $html;
希望这个示例可以为您带来一些其他的建议。