echo "<table width='234' border='1'>";
while(strtotime($USA_START) <= strtotime($USA_END))
{
$day_num = date('d', strtotime($USA_START));
$day_name = date('l', strtotime($USA_START));
echo "<tr><td>$day_num </td><td> $USA_START</td> <td> $day_name</td><td><input type='text' name='txtRep[]' ></td></tr>";
$USA_START = date("Y-m-d", strtotime("+1 day", strtotime($USA_START)));
}
echo "</table>";
我上面的php代码有一个循环,并为一行中的每条记录创建一个文本框。
当它在php代码之外时(这意味着它是纯HTML代码)我已成功自动完成下面的文本框。
<td><input type='text' name='txtRep[]' ></td>
使用JQuery。但是当我通过回显文本框在PHP标签内创建它时,自动完成过程不起作用?
任何人都可以提出建议吗?或者这是不可能的?
以下是自动完成的PHP代码
<?php
require_once "../DCR/connection/conn.php";
$q = strtolower($_GET["q"]);
if (!$q) return;
$query = "select * from REPPROF where REPTYPE='Mrep' and (REPNAME like '%".strtoupper($q)."%' or REPCODE like '%".strtoupper($q)."%')";
$statement = oci_parse ($connection, $query);
oci_execute ($statement);
while ($row = oci_fetch_array ($statement, OCI_BOTH)){
$txt1=$row['REPCODE'];
$txt2=$row['REPNAME'];
$B=$txt1.'~'.$txt2;
echo "$B\n";
//echo $query;
}
oci_close($connection);
?>
和Jquery
$().ready(function() {
$("#txtMedRep").autocomplete("Mrep_auto_complete.php", { width: 200,max: 20,selectFirst: false});
});
答案 0 :(得分:1)
问题不在于PHP(不再)。它会输出输入的名称就好了。但是JQuery尝试附加到未知的HTML元素id。 1710
不再存在(经过一些编辑后)。
要解决此问题,请尝试:
$("#txtMedRep")
当然不是所有输入,而是在这些输入上输出一个易于修复的类
答案 1 :(得分:1)
由于您已对问题进行了编辑,因此现在不再使用ID&#34; txtMedRep&#34;。因此,Javascript不会将自动填充功能添加到任何内容中。
使用类定义文本框,例如:
<input type='text' name='txtRep[]' class='autocomplete'>
然后将自动填充定义更改为:
$().ready(function() {
$(".autocomplete").autocomplete("Mrep_auto_complete.php", { width: 200,max: 20,selectFirst: false});
});
这将使其将自动完成功能添加到具有&#34; autocomplete&#34;的所有元素。类。