下面的脚本可以正常工作,它结合了JavaScript和PHP。
按下按钮,我得到它的值(buttonValue
= 20),现有的项目列表(A,B,C)被替换为在$i <= 10
(1,2,3…10)时停止的新列表:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
var buttonValue = $(':button').val();
alert(buttonValue);
$("#City > option").remove(); // remove all items from list
<?php $i = 1; while ($i <= 10): ?>
$('<option><?php echo $i; ?></option>').appendTo('#Country select');
<?php $i++; endwhile; ?>
});
});
</script>
<body>
<button value="20">click to start</button>
<div id="Country">
<select id="City">
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
</div>
</body>
我想更改PHP循环,以使
$i <= 10
改为显示$i <= $the_buttonValue
(将按钮值分配为显示数字1,2,3…20)。我尝试了jQuery AJAX函数:
load()
,get()
或ajax()
方法,将变量发送到服务器,但这似乎无法解决上述请求。我知道PHP和JavaScript的交流方式不同,也许AJAX请求可以满足新要求,但我不确定如何做到。
任何使它按要求工作的技巧,将不胜感激。
最佳答案
您不需要php来解决这个特定问题,但是如果由于某种原因必须使用php,则可以使用jquery load()函数,例如:
your.html
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
var buttonValue = $(':button').val();
alert(buttonValue);
$("#City > option").remove(); // remove all items from list
$('#Country').load('your.php?value='+buttonValue+' #Country')
});
});
</script>
<body>
<button value="20">click to start</button>
<div id="Country">
<select id="City">
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
</div>
</body>
your.php
<div id="Country">
<select id="City">
<?php
$val = $_GET['value']; //this will be your button value
$i = 1;
while (true)
{
?>
<option value="">
<?php echo $i++; if($i==$val) break; ?>
</option>
<?php
}
?>
</select>
</div>
我的第一个stackoverflow答案,希望您能投票:)