2

我有一个动态下拉菜单。这填充了第二个下拉列表。当我使用一个 php 变量进行测试时更改我的选择时,我的 javascript 没有使用我的变量。我对此很陌生

Javascript:

<script type="text/javascript">
function populate(s1,s2){
var s1 = document.getElementById(s1);
var s2 = document.getElementById(s2);
s2.innerHTML = "";
if(s1.value=="<?php echo $car; ?>"){
var optionArray=[" ","camero Camaro","convette Convette"];
} else
if(s1.value=="Dodge"){
var optionArray=[" ","avanger Avanger","challenger Challenger"];
} else if(s1.value=="Ford"){
var optionArray=[" ","mustang Mustang","fiesta Fiesta"];
}
for (var option in optionArray){
var pair = optionArray[option].split(" ");
var newOption = document.createElement("option");
newOption.value = pair[0];
newOption.innerHTML = pair[1];
s2.options.add(newOption);
}
}
</script>

PHP 文件:

<select name="slct1" id="slct1" onchange="populate(this.id,'slct2')">

<option value=""></option>
<option value="<?php $car = 'Chevy';echo $car; ?>">Chevy</option>
<option value="Dodge">Dodge</option>
<option value="Ford">Ford</option>
</select>
<hr />
<select id="slct2" name="slct2">
</select>
<hr />
4

5 回答 5

2

这是因为您分配了一个变量<?php $car = 'Chevy'; ?>

您需要打印<?php echo 'Chevy'; ?><?php echo $car; ?>

于 2013-03-16T18:10:30.710 回答
0
<option value="<?='Chevy'?>">Chevy</option>
于 2013-03-16T18:13:30.427 回答
0

问题在于这一行

if(s1.value=="<?php echo $car; ?>"){ 

尝试使用 html 的隐藏输入标签

<input id="hidden_field" name="hidden_field" type="hidden" value="<?php echo $car;?>" />

在 Javascript 中

var hidden_Value = document.getElementById('hidden_field').value;
if(s1.value==hidden_Value ){ 
于 2013-06-14T16:00:00.587 回答
0

如果您显示的 javascript 代码在 *.js 文件中,则其中的内联 php 将不会被 php 解析。

我不知道这是你遇到的问题还是更深层次的问题。当 javascript 发送到您的浏览器时,第 6 行看起来像:

if(s1.value=="<?php echo $car; ?>"){

或者

if(s1.value=="Chevy"){

如果它看起来像第一个,但您希望它看起来像第二个,那么您需要将您的 javascript 放在 php 文件中,以便它可以访问您的变量。

于 2013-03-16T20:52:35.523 回答
0

这个

if(s1.value=="<?php echo $car; ?>"){

将被解析并添加 $car 的值。

<option value="<?php $car = 'Chevy'; ?>">Chevy</option>

将其替换为

<option value="<?php $car = 'Chevy'; echo $car; ?>">Chevy</option>

记得给 $car 赋值。正如我上面所说,

if(s1.value=="<?php echo $car; ?>"){

将被解析,添加 $car = 'Chevy'; 它上面

于 2013-03-16T18:26:33.863 回答