我有一个javascript函数,可以根据用户输入生成动态代码。
现在我有一个表,其中一列是多个下拉选择框。
下拉列表的值来自php地址。
如何让我的表格的其余部分以动态方式生成下拉列表。
P.S。 我知道我想用get ajax函数来获取它但是我没有发送任何值只是从数据库中获取它们。所以任何一个例子都会很棒。
这是我的代码:
$(document).ready(function() {
$("#submit").click(function(e) {
$("#Table").empty();
//myCall();
e.preventDefault();
if($("#NumOfLevels").val() >0) {
var size = $("#NumOfLevels").val();
var str='';
var values = '<$php do { $> <option value="<$php echo $row_rsCatalog["CatalogName"]$>"> <$php echo $row_rsCatalog["CatalogName"]$></option><$php } while ($row_rsCatalog = mysql_fetch_assoc($rsCatalog));$rows = mysql_num_rows($rsCatalog);if($rows > 0) { mysql_data_seek($rsCatalog, 0);$row_rsCatalog = mysql_fetch_assoc($rsCatalog);}$>';
str+='<table align="center" width="694" border="0" cellspacing="3" cellpadding="0">';
str+='<tr><th style="width:auto" scope="col">Level </th><th width="107">Score</th><th width="58">File</th><th width="80">Link</th><th width="93">StartDate</th><th width="85">EndDate</th></tr>';
for(var i = 0; i< size ; i++) {
str+='<tr><td id="stage'+i+'" style="width:auto">no. '+(i+1)+'</td><td><span id="sprytextfield4"><input type="text" name="Score" id="Score"/>';
str+='<span class="textfieldRequiredMsg">A value is required.</span></span></td>';
str+='<td><input type="file" name="gameFile" id="gameFile" /></td>';
str+='<td><select multiple="multiple" name="CatlogLink" id="CatlogLink">';
str+=values;
str+='</select></td>';
str+='<td><input type="text" class="date" id="datepicker" ></td>';
str+='<td><input type="text" class="date" id="datepicker2" "></td>';
//str.find('input').datepicker();
}
//str+='</tr></table>';
$("#Table").append(str);
var btn = '';
btn+='<tr><td width="192" colspan="2" align="center"><input type="submit" name="Submit" id="submit" value="שליחה"/></td>';
btn+='<td width="309" colspan="4" align="center"><input type="reset" name="reset" id="Clear" value="ניקוי" /></td></tr></tr></table>';
$("#Table tr:last").after(btn);
}
$(".date").click(function() {
$( ".date" ).datepicker();
$( ".date" ).datepicker();
});
});
});
答案 0 :(得分:0)
我不知道你应该如何使用jquery创建php源代码?一个是在Web服务器上解释的,另一个是在浏览器加载的源实例中动态生成的,但是如果没有Web服务器来解释服务器端脚本,这对你来说很有帮助...除了显示你的页面应该如何工作(从而暴露它的恶意访问尝试),这将是浏览器只是显示或跳过的一堆来源,但不会被解释为php ......
当然,我可能不明白你在这里想要实现的目标并且弄错了,但这就是我的看法..
答案 1 :(得分:0)
我建议调查this。您仍然应该使用ajax get(或getJSON)来使用php从数据库中获取数据。
一个非常简单的例子:
(适用的script.js)强>
$.ajax({
dataType: "json", // Used to decipher response from PHP
url: "function.php", // The PHP file that will return your data
// data: data, // This is not needed if your PHP script doesn't need it
success: function (response) {
// I would do console.log(response) to check what your PHP script returns
}
});
(适用function.php)强>
// If you send data in the above ajax call, it can be retrieved through $_GET
// EG
// data: {test:"hello world"} would be retrieved
// at $_GET['test'] and contain the string "hello world"
// Query and retrieve data from your database
$data = array(
array('id' => 1),
array('id' => 2) // and so on...
);
// $response should be some kind of array (that way json_encode won't error out)
$response = array('data' => $data);
echo json_encode($response); // Will output a json encoded string so that the ajax call can decipher it
exit; // This would exit the script, so anything after this statement won't run.
// Note: If you echo anything after the json_encode then the ajax call won't be able to decipher the response.
在script.js&#39;成功函数,响应看起来像这样:
{
"data": [
{
"id": 1
},
{
"id": 2
}
]
}
此时,您可以遍历response.data
(因为它将是一个数组)来构建您的下拉列表(或其他HTML元素)
我可能会在这里添加一件事,你应该克制在你的javascript代码中使用PHP代码,因为事情会变得非常混乱。保持事物分离总是更好(js文件中的javascript和php文件中的PHP)