所以我有一个简单的页面(html)在哪里使用jQuery我加载到一个选择使用PHP文件。 的代码如下: 的HTML:动态生成选项的问题选择
<div data-role="page" id="pg_invoicedtl">
<header data-role="header" data-theme="b">
<a href="javascript:history.go(0)" data-icon="refresh" class="ui-btn-right" data-theme="e">Refresh</a>
<h1>MyApp</h1>
</header>
<div align="center" data-role="content">
<ul data-role="listview" data-theme="c" data-divider-theme="e" data-count-theme="b" data-inset="true">
<li data-role="list-divider">
<h3 class="ui-li-heading">Select product</h3>
</li>
<li>
<div data-role="fieldcontain">
<label for="prodselect" class="select">Choose the product:</label>
<select name="prodselect" id="prodselect">
</select>
</div>
</li>
</ul>
</div>
</div>
脚本(位于当然在HEAD部分),我用它来填充的选择是:
<script type="text/javascript">
$(document).ready(function() {
$.ajaxSetup ({
cache: false
});
var ajaxLoader = '<img src="images/ajax-loader.gif" alt="loading.." />';
var loadUrl = "loadproducts.php";
$('#prodselect').toggle('fast', function() {
$(this).html(ajaxLoader);
$(this).toggle('fast', function() {
$.get(loadUrl, function(data){
$('#prodselect').html(data);
},'html');
});
});
$('#prodselect').selectmenu('refresh');
});
</script>
而且现在的PHP文件(loadproducts.php)脚本正在呼叫:
<?php
session_start();
include "/tmp/conexiune.php";
$pql = mysql_query("select * from products order by name");
$isfirst = 0;
while ($prow = mysql_fetch_row($pql)){
if ($isfirst == 0){
echo '<option id="'.$prow['idproducts'].'"value="'.$prow['name'].'" selected="selected">'.$prow['name'].' - '.$prow['pu'].' EUR</option>';
}
else
{
echo '<option id="'.$prow['idproducts'].'"value="'.$prow['name'].'">'.$prow['name'].' - '.$prow['pu'].' EUR</option>';
}
$isfirst++;
}
?>
首先,我必须告诉你,上面的代码工作。随着一个问题,但...我的问题...:
正如你可以从代码中观察到的,我不想被“选中”的选择的第一选择,但无论我做什么,它不会发生。刷新页面后,选择框为空,如果我想使用鼠标选择列表中的第一个选项,它不会执行任何操作,就好像第一个项目已被选中一样,所以它不会执行此操作。
如果我想选择列表中的第二个或其他选项,所有工作正常。
因此,选择的第一个元素似乎被选中,但不会在选择框中显示它的值。
我甚至加了$('#prodselect')。selectmenu('refresh');到脚本没有结果...
此外,如果我使用非dinamically生成的选项,一切工作完美。所以对于静态选项,选择从一开始就显示第一个选项。
我不明白什么可能是错的。我在HTML之外测试了php文件(没有从脚本调用它),结果看起来就像一个完美的选择内容,并且当放入选择标记时它显示出完美的结果。但是当我从脚本中调用它时,事情会变得混乱。
我会把一个的jsfiddle这里,但我不认为它与PHP文件...
你试过$( '#prodselect).selectmenu(' 刷新',是); –
我尝试过。不起作用。如果您有权访问PHP + MySql环境,请亲自尝试。这只是一个简单的产品表,一个简短的PHP文件和上面的简单HTML。你应该能够轻松地重现我的问题。 –