基本上我从表单中提取信息,我希望根据用户的输入回显不同的东西。但是,我只获得了第一个结果。我怎样才能解决这个问题?这是代码:
<head>
<title></title>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
<script type="text/javascript">
function showHide() {
var div = document.getElementById("hidden");
if (div.style.display == 'none') {
div.style.display = '';
}
else {
}
}
</script>
<script type="text/javascript">
$(function () {
$('form').on('submit', function (e) {
$.ajax({
type: 'post',
url: 'post.php',
data: $('form').serialize(),
success: function () {
alert('form was submitted');
}
});
e.preventDefault();
});
});
</script>
</head>
<body>
<form action="" method="post">
<input type="text" name="t0i"><input type="submit" onclick="showHide();">
</form>
<div style="display:none;" id="hidden">
<?php
$t0 = $_POST["t0i"];
if ($t0 = "1") {
echo "result 1";
}
elseif ($t0 = "2") {
echo "result 2";
}
elseif ($t0 = "3") {
echo "result 3";
}
else {
echo "no result, try again";
}
?>
</div>
</body>
javascript是必不可少的,它在提交时显示隐藏的结果(display:none;),第二个脚本确保在提交表单后页面不刷新(所有内容都在同一页面上完成)。但是,删除这两个脚本并不能解决我的问题。我有一种感觉问题出在PHP中,但我无法弄清楚它是什么。提前致谢。这是一个演示:
答案 0 :(得分:3)
你在这里:)
if ($t0 = "1")
正确的:
if ($t0 == "1")
答案 1 :(得分:0)
答案 2 :(得分:0)
operator =用于赋值。运算符==如果它们不同则在两种不同类型之间进行转换,而===运算符执行“类型安全比较”。这意味着如果两个操作数具有相同的类型和相同的值,它将仅返回true。
示例:
$a = 1; // assign value
1 === 1: true
1 == 1: true
1 === "1": false // 1 is an integer, "1" is a string
1 == "1": true // "1" gets casted to an integer, which is 1
"foo" === "foo": true // both operands are strings and have the same value
你可以使用开关语句
切换:switch语句类似于同一表达式上的一系列IF语句。在许多情况下,您可能希望将相同的变量(或表达式)与许多不同的值进行比较,并根据它所等的值执行不同的代码。
$t0 = $_POST["t0i"];
switch ($t0) {
case 1:
echo "result 1";
break;
case 2:
echo "result 2";
break;
case 3:
echo "result 3";
break;
default:
echo "no result, try again";
break;
}
答案 3 :(得分:0)
我已经使用Firebug进行了检查,它提供了未定义的索引:t0i 并且post不分配值。所以没有条件满满,所以你没有得到任何结果。
<head>
<title></title>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
<script type="text/javascript">
function showHide() {
var div = document.getElementById("hidden");
if (div.style.display == 'none') {
div.style.display = '';
}
else {
}
}
</script>
<script type="text/javascript">
$(function () {
$('form').on('submit', function (e) {
var val=$('#t0i').val();
$.ajax({
type: 'POST',
url: 'form.php',
data:{val:val},
success: function (data) {
if (val == "1"){
$('#hidden').html("result 1");
}
else if (val== "2"){
$('#hidden').html("result 2");
}
else if (val == "3") {
$('#hidden').html("result 3");
}
else {
$('#hidden').html("no result, try again");
}
}
});
e.preventDefault();
});
});
</script>
</head>
<body>
<form action="" method="post">
<input id="t0i" type="text" name="t0i"><input type="submit" onclick="showHide();">
</form>
<div style="display:none;" id="hidden">
</div>
</body>