这可能吗?我知道下面的代码看起来乱七八糟但我想通过将PHP嵌入其中来使其更加混乱。在每次单击时我都会在表上附加一行,但是我需要通过从mysql数据库中提取结果,将动态下拉列表包含在其中一个<td>
中。它说的是:<td><p class="add_edit">Add/Edit</p><input type="text" class="project_ref_input" name="project_ref_input" /><p class="project_ref"></p></td>
而不是p标签我将有一个PHP内置下拉列表...我怎么能实现这个?
$('#items').append('<tr class="tableRow">
<td><a class="removeItem" href="#"><img src="/admin/images/delete.png"></img></a></td>
<td class="supp_short_code">' + supp_short_code_db + '</td>
<td class="om_part_no">' + omPartNo + '</td>
<td>' + supPartNo + '</td><td>' + cat + '</td>
<td class="description">' + desc + '</td>
<td>' + manuf + '</td>
<td>' + list + '</td>
<td>' + disc + '</td>
<td><p class="add_edit">Add/Edit</p><input type="text" class="quantity_input" name="quantity_input" /></td>
<td class="price_each_nett price">' + priceEach + '</td>
<td class="cost_of_items"></td>
<td><p class="add_edit">Add/Edit</p><input type="text" class="project_ref_input" name="project_ref_input" /><p class="project_ref"></p></td>
<td class="cost_total_td"></td>
</tr>');
答案 0 :(得分:9)
因为Jquery是客户端 - 你不能像你建议的那样附加PHP。
您必须编写一个由Jquery回调触发的PHP脚本,PHP脚本将收到一些参数,并返回实现您的解决方案所需的HTML。
这有帮助吗?
答案 1 :(得分:3)
第1步:添加行
// Your code
//just call another function to get db driven combo.
get_education_combo();
第2步:编写以下javascript函数,从php代码中重新获取结果并发送到html元素。
function get_education_combo()
{
var url ="print_education_list";
//alert(url);
var contents = AjaxRequest(url);
//alert(contents);
//return contents;
//send the result to html
document.getElementById("elementID").innerHTML=contents;
}
function AjaxRequest(url)
{
//alert(url);
if(xmlhttp != null){
if(xmlhttp.abort)
xmlhttp.abort();
xmlhttp = null;
};
if(window.XMLHttpRequest) // good browsers
xmlhttp=new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
if(xmlhttp == null)
return null;
xmlhttp.open("GET",url,false);
xmlhttp.send(null);
// alert(xmlhttp.status);
if(xmlhttp.status >= 200 && xmlhttp.status < 300)// 2xx is good enough
return xmlhttp.responseText;
else
return null;
}
第3步:php代码
print_education_list()
{
$education="your query";
echo '<select name="edu_name" id="edu_name" style="width:70px;">';
foreach($education as $edu)
{
echo '<option>';
echo $edu->sEducationName;
echo '</option>';
}
echo '</select>';
}
就是这样。最好的运气。我在开发DeskTop应用程序时已经准备好了这个组合。
答案 2 :(得分:1)
您将在服务器上生成下拉列表,然后使用jQuery $ .ajax方法获取下拉列表。或者,您可以返回一个选项/值的JSON数组,并使用类似$ .each的内容构建您的下拉列表来迭代数组。
如果您正在考虑在javascript中使用PHP,然后将其发送回服务器以执行,那么请不要。那是最高阶的WTF。你不是那个意思吗? (您可能想要更改问题的标题 - 因为它看起来像是什么样的。)
编辑:对于所有人说客户端PHP是不可能的。看看这个!
答案 3 :(得分:1)
PHP仅限服务器端,因此您无法将其嵌入到发送到客户端浏览器并希望它运行的JS中。为了实现您的结果,您需要使用PHP在初始页面中呈现列表,或者使用AJAX调用从服务URI中提取列表。
答案 4 :(得分:0)
如果您在服务器上动态生成此代码,即您希望在将HTML标记发送到客户端之前将其添加到HTML标记中,您可以执行以下操作:
<td><?php $VARIABLE_TO_ADD ?></td>
这假设您知道如何从数据库中提取数据并使用该数据创建变量。 PHP在HTML文档中查找<?php ?>
标记并解析它们之间的任何内容。