Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP+jQuery正在阻止我的select元素更新_Javascript_Php_Jquery - Fatal编程技术网

Javascript PHP+jQuery正在阻止我的select元素更新

Javascript PHP+jQuery正在阻止我的select元素更新,javascript,php,jquery,Javascript,Php,Jquery,我使用PHP显示从1940年到当前年份之间的年份,并使用foreach循环在select元素中呈现每个选项。一切都按计划进行,直到我向select元素添加一个id,jquery块会查看该元素的更改 本质上,我现在正在尝试console.log来显示选择的任何选项的值,但是我的jQuery/PHP的某些内容正在阻止select显示选择的选项。console.log按预期工作,但所选选项在元素中不更新。它总是返回显示默认选项,因为它是当前年份 如果我将PHP foreach select/选项更改为

我使用PHP显示从1940年到当前年份之间的年份,并使用foreach循环在select元素中呈现每个选项。一切都按计划进行,直到我向select元素添加一个id,jquery块会查看该元素的更改

本质上,我现在正在尝试console.log来显示选择的任何选项的值,但是我的jQuery/PHP的某些内容正在阻止select显示选择的选项。console.log按预期工作,但所选选项在元素中不更新。它总是返回显示默认选项,因为它是当前年份

如果我将PHP foreach select/选项更改为纯HTML的静态下拉列表,它就可以正常工作。类似地,如果我断开jQuery的连接,但保留PHP动态生成的选项列表,它也可以正常工作。我的PHP+jQuery组合的某些东西阻止了select的更新,我不知道是什么

以下是我的HTML/PHP代码:

<select name="birthyear" id="birthyear">
  <?php
    // $years is setting the range from current year to 1940
    $years = range(date('Y'), 1940);
    foreach ($years as $year) {
      echo "<option id='$year' value='$year'>".$year."</option>";
    }
  ?>
</select>

我在这里遗漏了什么吗?

您的代码工作正常。。。我所做的只是执行PHP以获得HTML,然后将其插入JSFIDLE

我认为您的问题在于没有正确地包含jQuery

<select name="birthyear" id="birthyear">
    <option id='2018' value='2018'>2018</option>
    <option id='2017' value='2017'>2017</option>
    <option id='2016' value='2016'>2016</option>
    <option id='2015' value='2015'>2015</option>
    <option id='2014' value='2014'>2014</option>
    <option id='2013' value='2013'>2013</option>
    <option id='2012' value='2012'>2012</option>
    <option id='2011' value='2011'>2011</option>
    <option id='2010' value='2010'>2010</option>
    <option id='2009' value='2009'>2009</option>
    <option id='2008' value='2008'>2008</option>
    <option id='2007' value='2007'>2007</option>
    <option id='2006' value='2006'>2006</option>
    <option id='2005' value='2005'>2005</option>
    <option id='2004' value='2004'>2004</option>
    <option id='2003' value='2003'>2003</option>
    <option id='2002' value='2002'>2002</option>
    <option id='2001' value='2001'>2001</option>
    <option id='2000' value='2000'>2000</option>
    <option id='1999' value='1999'>1999</option>
    <option id='1998' value='1998'>1998</option>
    <option id='1997' value='1997'>1997</option>
    <option id='1996' value='1996'>1996</option>
    <option id='1995' value='1995'>1995</option>
    <option id='1994' value='1994'>1994</option>
    <option id='1993' value='1993'>1993</option>
    <option id='1992' value='1992'>1992</option>
    <option id='1991' value='1991'>1991</option>
    <option id='1990' value='1990'>1990</option>
    <option id='1989' value='1989'>1989</option>
    <option id='1988' value='1988'>1988</option>
    <option id='1987' value='1987'>1987</option>
    <option id='1986' value='1986'>1986</option>
    <option id='1985' value='1985'>1985</option>
    <option id='1984' value='1984'>1984</option>
    <option id='1983' value='1983'>1983</option>
    <option id='1982' value='1982'>1982</option>
    <option id='1981' value='1981'>1981</option>
    <option id='1980' value='1980'>1980</option>
    <option id='1979' value='1979'>1979</option>
    <option id='1978' value='1978'>1978</option>
    <option id='1977' value='1977'>1977</option>
    <option id='1976' value='1976'>1976</option>
    <option id='1975' value='1975'>1975</option>
    <option id='1974' value='1974'>1974</option>
    <option id='1973' value='1973'>1973</option>
    <option id='1972' value='1972'>1972</option>
    <option id='1971' value='1971'>1971</option>
    <option id='1970' value='1970'>1970</option>
    <option id='1969' value='1969'>1969</option>
    <option id='1968' value='1968'>1968</option>
    <option id='1967' value='1967'>1967</option>
    <option id='1966' value='1966'>1966</option>
    <option id='1965' value='1965'>1965</option>
    <option id='1964' value='1964'>1964</option>
    <option id='1963' value='1963'>1963</option>
    <option id='1962' value='1962'>1962</option>
    <option id='1961' value='1961'>1961</option>
    <option id='1960' value='1960'>1960</option>
    <option id='1959' value='1959'>1959</option>
    <option id='1958' value='1958'>1958</option>
    <option id='1957' value='1957'>1957</option>
    <option id='1956' value='1956'>1956</option>
    <option id='1955' value='1955'>1955</option>
    <option id='1954' value='1954'>1954</option>
    <option id='1953' value='1953'>1953</option>
    <option id='1952' value='1952'>1952</option>
    <option id='1951' value='1951'>1951</option>
    <option id='1950' value='1950'>1950</option>
    <option id='1949' value='1949'>1949</option>
    <option id='1948' value='1948'>1948</option>
    <option id='1947' value='1947'>1947</option>
    <option id='1946' value='1946'>1946</option>
    <option id='1945' value='1945'>1945</option>
    <option id='1944' value='1944'>1944</option>
    <option id='1943' value='1943'>1943</option>
    <option id='1942' value='1942'>1942</option>
    <option id='1941' value='1941'>1941</option>
    <option id='1940' value='1940'>1940</option>
</select>

因为您实际上并没有更新它。您只是登录到控制台。没什么了。你能给我们看生成的标记,而不是生成标记的脚本吗?javascript不关心标记是如何生成的。它将使用什么样的标记。PHP与此无关。发布一个显示渲染输出的帖子。感谢回复。你是对的,代码本身是正确的。我在Safari/Firefox中试用过,效果非常好。我只是在Chrome隐姓埋名模式下尝试了一下,效果不错,所以我的Chrome肯定有问题。谢谢你的帮助。
<select name="birthyear" id="birthyear">
    <option id='2018' value='2018'>2018</option>
    <option id='2017' value='2017'>2017</option>
    <option id='2016' value='2016'>2016</option>
    <option id='2015' value='2015'>2015</option>
    <option id='2014' value='2014'>2014</option>
    <option id='2013' value='2013'>2013</option>
    <option id='2012' value='2012'>2012</option>
    <option id='2011' value='2011'>2011</option>
    <option id='2010' value='2010'>2010</option>
    <option id='2009' value='2009'>2009</option>
    <option id='2008' value='2008'>2008</option>
    <option id='2007' value='2007'>2007</option>
    <option id='2006' value='2006'>2006</option>
    <option id='2005' value='2005'>2005</option>
    <option id='2004' value='2004'>2004</option>
    <option id='2003' value='2003'>2003</option>
    <option id='2002' value='2002'>2002</option>
    <option id='2001' value='2001'>2001</option>
    <option id='2000' value='2000'>2000</option>
    <option id='1999' value='1999'>1999</option>
    <option id='1998' value='1998'>1998</option>
    <option id='1997' value='1997'>1997</option>
    <option id='1996' value='1996'>1996</option>
    <option id='1995' value='1995'>1995</option>
    <option id='1994' value='1994'>1994</option>
    <option id='1993' value='1993'>1993</option>
    <option id='1992' value='1992'>1992</option>
    <option id='1991' value='1991'>1991</option>
    <option id='1990' value='1990'>1990</option>
    <option id='1989' value='1989'>1989</option>
    <option id='1988' value='1988'>1988</option>
    <option id='1987' value='1987'>1987</option>
    <option id='1986' value='1986'>1986</option>
    <option id='1985' value='1985'>1985</option>
    <option id='1984' value='1984'>1984</option>
    <option id='1983' value='1983'>1983</option>
    <option id='1982' value='1982'>1982</option>
    <option id='1981' value='1981'>1981</option>
    <option id='1980' value='1980'>1980</option>
    <option id='1979' value='1979'>1979</option>
    <option id='1978' value='1978'>1978</option>
    <option id='1977' value='1977'>1977</option>
    <option id='1976' value='1976'>1976</option>
    <option id='1975' value='1975'>1975</option>
    <option id='1974' value='1974'>1974</option>
    <option id='1973' value='1973'>1973</option>
    <option id='1972' value='1972'>1972</option>
    <option id='1971' value='1971'>1971</option>
    <option id='1970' value='1970'>1970</option>
    <option id='1969' value='1969'>1969</option>
    <option id='1968' value='1968'>1968</option>
    <option id='1967' value='1967'>1967</option>
    <option id='1966' value='1966'>1966</option>
    <option id='1965' value='1965'>1965</option>
    <option id='1964' value='1964'>1964</option>
    <option id='1963' value='1963'>1963</option>
    <option id='1962' value='1962'>1962</option>
    <option id='1961' value='1961'>1961</option>
    <option id='1960' value='1960'>1960</option>
    <option id='1959' value='1959'>1959</option>
    <option id='1958' value='1958'>1958</option>
    <option id='1957' value='1957'>1957</option>
    <option id='1956' value='1956'>1956</option>
    <option id='1955' value='1955'>1955</option>
    <option id='1954' value='1954'>1954</option>
    <option id='1953' value='1953'>1953</option>
    <option id='1952' value='1952'>1952</option>
    <option id='1951' value='1951'>1951</option>
    <option id='1950' value='1950'>1950</option>
    <option id='1949' value='1949'>1949</option>
    <option id='1948' value='1948'>1948</option>
    <option id='1947' value='1947'>1947</option>
    <option id='1946' value='1946'>1946</option>
    <option id='1945' value='1945'>1945</option>
    <option id='1944' value='1944'>1944</option>
    <option id='1943' value='1943'>1943</option>
    <option id='1942' value='1942'>1942</option>
    <option id='1941' value='1941'>1941</option>
    <option id='1940' value='1940'>1940</option>
</select>