如果您通过 AJAX 执行此操作,则不需要<form>
代码。<form>
仅当您发布到不同的页面并期望视图无论如何都会更改/刷新时,这些代码才有用。
此外,<form>
在此示例中使用代码将导致页面刷新(并丢失由 jQuery 插入的值)以使用“设置隐藏字段当前值”按钮的附加位。并不是说它在您的现实世界应用程序中可能很重要,但仅供参考。
Ajax 进入您的 javascript 代码,如下所示:
$('#mySelect').change(function() {
var sel = $(this).val();
//alert('You picked: ' + sel);
$.ajax({
type: "POST",
url: "your_php_file.php",
data: 'theOption=' + sel,
success: function(whatigot) {
alert('Server-side response: ' + whatigot);
} //END success fn
}); //END $.ajax
}); //END dropdown change event
请注意,来自 PHP 文件的ECHO数据会在 AJAX 调用的成功函数中进入您的 HTML 文档,并且必须在那里进行处理。这就是您将接收到的数据插入 DOM 的地方。
例如,假设您的 HTML 文档有一个带有id="myDiv"
. 要将 PHP 中的数据插入 HTML 文档,请将行:替换为alert('Server-side response: ' + whatigot);
:
$('#myDiv').html(whatIgot);
快!您的 DIV 现在包含从 PHP 文件回显的数据。
这是您自己的示例的工作解决方案,使用 AJAX:
HTML 标记:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#mybutt').on('click', function(e){
e.preventDefault(); //prevent default action
var ct = $('#city').val();
var dt = $('#date').val()
var ty = $('#type').val();
var curr = $('#current').val();
$.ajax({
url: 'result.php',
type: 'POST',
data: 'ct=' +ct+ '&dat=' +dt+ '&t=' +ty+ '&curr=' +curr,
success: function(response){
$('#welcome').html(response);
}
});
});
$('#mycurr').click(function(){
var resp = prompt("Please type something:","Your name");
$('#current').val(resp);
});
}); //END $(document).ready()
</script>
</head>
<body>
<div id="welcome">
<input type="hidden" id="date" name="selected"/>
<select id="city" class="cities" data-role="none" name="City">
<option value="sumwhere">Anyplace</option>
<option value="anutherwhere">Another place</option>
</select>
<select id="type" class="cities" data-role="none" name="Event">
<option value="sumthing">Anything</option>
<option value="anutherthing">Another thing</option>
</select>
<input type="submit" id="mybutt" class="button" value="Ok Go!"/>
<input type="submit" id="mycurr" class="button" value="Set value for hidden field CURRENT"/>
<input id="current" name="current" type="hidden"/>
</div>
</body>
</html>
PHP 处理器文件:result.php
$ct = $_POST['ct'];
$date = $_POST['dat'];
$typ = $_POST['t'];
$cu = $_POST['curr'];
if ($date == '') {
$date = 'Some other date';
}
$r = '<h1>Results sent from PHP</h1>';
$r .= 'Selected city is: [' .$ct. ']<br />';
$r .= 'Selected date is: [' .$date. ']<br />';
$r .= 'Selected type is: [' .$typ. ']<br />';
$r .= 'Hidden field #CURRENT is: [' .$cu. ']<br />';
$r .= '<h2>And that\'s all she wrote....</h2>';
echo $r;