我正在编写一个脚本,根据所选值回显答案。这将是后来的多个值,但现在我只是测试。 php脚本通过AJAX调用,因此结果将显示在同一页面上。
唯一的问题是我的变量$ brand在这种情况下没有被传递,因此脚本将始终返回我的else语句。我已经将变量包含在回声中以检查它是否通过,但事实并非如此。这里出了什么问题?
这是我的索引文件代码:
<?php
session_start();
?>
<html>
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript" src="JS/jquery-1.10.2.js" ></script>
<script>
function myCall(){
var request = $.ajax({
url: "process.php",
type: "post",
dataType: "html"
});
request.done(function(msg) {
$("#response").html(msg);
});
request.fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
}
</script>
</head>
<body>
<div id="formulier">
<form method="" action="" name="form" id="form">
<label for="brand">Brand</label>
<select id="brand" name="brand">
<option value="" >- Select -</option>
<option value="1">Marlboro (1)</option>
<option value="2">Pall Mall (2)</option>
</select>
<input type="button" value="submit" onclick="myCall();">
</form>
</div>
<div id="response">
</div>
这是我的php文件(process.php):
<?php
session_start();
$brand = $_POST['brand'];
if( $brand == '1'){
echo "Value is 1";
}
else{
echo "Value is: ".$brand;
}
?>
答案 0 :(得分:0)
您应该使用json_encode
(http://us1.php.net/json_encode)在process.php
中进行回复。
答案 1 :(得分:0)
确保您设置session variable并稍后阅读(在您的php else块中),例如,
$_SESSION["brand"] = "2";
答案 2 :(得分:0)
我在你的脚本中看到了几个问题:
试试这个:
function myCall(){
var request = $.ajax({
url: "process.php",
type: "post",
dataType: "html",
data: $('#form').serialize(), //here you send the form fields
success: function(msg) {
$("#response").html(msg);
},
error: function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
}
}
}
答案 3 :(得分:0)
您应该尝试定义表单属性
<form method="POST" action="" name="form" id="form">