每次在select选项中选择一个新选项时,我都会尝试更改多个文本字段。这是我目前的代码,我出错的任何想法?感谢。
<script type="text/javascript">
$("#combo").change(function() {
var value = $(this).val();
$.get(document, {type: value});
});
</script>
<td class="bold"><label for='addType'>Select Type to Add : </label>
<select name="addType" id="combo">
<option value="book">Book</option>
<option value="author">Author</option>
<option value ="publisher">Publisher</option>
<option value="customer">Customer</option>
</select>
<?php
$type['type'] = $_GET['type'];
if ($type['type'] == 'author') {
print "test";
}
?>
答案 0 :(得分:0)
$ .get函数看起来像这样:
$.get("php_page.php",
{type: value},
function(data) {
$("#response").html(data)
);
在您的</select>
之后放置一个ID为&#34的div;响应&#34;这将显示您的返回值:
<div id="response">
</div>
现在您需要做的就是在同一目录中创建第二个页面(&#34; php_page.php&#34;),它将处理您的$ .get AJAX请求:
<?php
echo $_GET['type'];
?>
如果您不知道,PHP是一种服务器端语言。这意味着一旦页面加载,PHP就已经完成了它的工作。因此,如果您需要在页面加载后使用特殊的PHP权限,那就是AJAX的用途。
答案 1 :(得分:0)
你这样做完全错误的方式!! 请阅读有关jQuery ajax的手册。
只是为了帮助您启动项目:
你必须从你想从php文件中获取的响应中分离出基本结构。请参阅此 DEMO
HTML部分是:
<select name="addType" id="combo">
<option value="book">Book</option>
<option value="author">Author</option>
<option value ="publisher">Publisher</option>
<option value="customer">Customer</option>
</select>
<div>Response: <span id="selection"></span></div>
这也可以用PHP填充,但不是响应!
JavaScript是:
$("#combo").change(function() {
$.ajax({
url: "/echo/html/",
type: "POST",
data: {"html":"Yeah: "+$(this).val()+" is cool!"},
success: function(data) {
$("#selection").html(data);
}
});
});
如果你把它放在一个额外的文件中会很好。
最后但并非最不重要的是,使用网址/echo/html
指定的“PHP文件”会执行以下操作:
<?php
echo $_POST["html"];
?>
希望这有帮助。
答案 2 :(得分:0)
首先,本节:
<?php
$type['type'] = $_GET['type'];
if ($type['type'] == 'author') {
print "test";
}?>
仅在页面首次加载时打印,并且仅当type = xxx在url查询字符串中时才会打印。由于代码是服务器端
,因此在加载后无法在页面上运行PHP对于jquery部分,请尝试:
$(document).ready(
function(){
$('#combo').change(function(){doAjax();});
}
);
function doAjax(){
$.get(
'url', //i think jquery defaults to self if not url is given but you can also use <?php echo $_SERVER['PHP_SELF'];?>
{'type' : $('#combo').val()},
function(data){
// what should the ajax call do with the response data?
},
"html"
);
}
你也应该创建一个div来将返回的数据放入.html(),这比尝试将响应附加到其上面的最后一个元素的结尾更容易。