php - GET函数动态javascript代码

时间:2015-04-16 16:39:20

标签: javascript php jquery ajax

我有一个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();
    });

  });
});

2 个答案:

答案 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)