簡體   English   中英

動態生成的表單不能正常工作

[英]dynamically generated form not working properly

即時通訊具有此ajax功能,其中我動態填充來自數據庫的元素列表。 它們中的每一個都作為顯示圖片和名稱。 它有一個帶有變量的隱藏字段,該變量通過POST在另一頁上捕獲,並顯示圖像和一些信息。

問題是有時隱藏字段中的ID參數似乎不會被發送。 表單已發送,但它似乎沒有捕獲隱藏的變量,顯示隨機圖像和信息,而不是我最初點擊的那個。

這是我的代碼:

function absurdSearch(textoBuscar){
    $.ajax({
        type    : "POST",
        url     : "service.php",
        dataType: "json",
        data    : {
            action:"absurdSearch",
            absurdText: textoBuscar
        },
        success:function(data){
            $("#testDiv").empty();
            var i;
            for (i = 0; i < data.data.length; ++i) {

                console.log(data);
                var divCreator ='';
                var str='projectsearch' + i;

                data.data[i].projectCategory

                var ProjectTypeIdName = data.data[i].projectCategory;
                switch (ProjectTypeIdName) {
                    case "1":
                        var urlFormSend='proyectos_arq.php';
                        var projectTypeName ='Proyectos <br/>Arquitectónicos';
                        break;
                    case "6":
                        var urlFormSend='proyectos_urb.php';
                        var projectTypeName ='Proyectos <br/>Urbanos';
                        break;
                    case "7":
                        var urlFormSend='arquit_pai.php';
                        var projectTypeName ='Arquitectura del <br/>Paisaje';
                        break;
                    case "8":
                        var urlFormSend='arquit_int.php';
                        var projectTypeName ='Arquitectura de <br/>Interiores';
                        break;
                    case "10":
                        var urlFormSend='arquit_trans.php';
                        var projectTypeName ='Arquitectura del <br/>Transporte';
                        break;
                }

                divCreator+='<div id="grupo'+i+' class="typeface-js" style="font-family:GreyscaleBasic"">';
                divCreator+='<div class="tipo-pro">';
                divCreator+='<div id="tipo_arq" class="tipo">'+projectTypeName+'</div>';
                divCreator+='<div id="tipo_arq_abajo" class="abajo"></div>';
                divCreator+='</div>';
                divCreator+='<div>';
                divCreator+='<div id="tipo_'+i+'"></div>';
                divCreator+='<div id="tipo_arq_abajo'+i+'"></div>';
                divCreator+='</div>';
                divCreator+='<div id="fotoproyectos'+i+'" ><img src="' + data.data[i].path + '" height="128" width="160"></div>';
                divCreator+='<div id="nombreproyectos'+i+'" ><form method="post" name="projectsearch'+i+'" id="projectsearch'+ i +'" action="'+urlFormSend+'">';
                divCreator+='<span style="cursor: pointer;" onclick="document.getElementById(\'projectsearch'+i+'\').submit()">"'+ data.data[i].projectName +'"</span>'
                divCreator+='<input name="project_id" type="hidden" id="project_id" value="' + data.data[i].projectId + '">';
                divCreator+='</form></div>';
                divCreator+='</div>';
                divCreator+='</div><br><br>';

                $("#testDiv").append(divCreator);

            };
        }
    })
};

這是實際捕獲POST變量的代碼。

<?php
require('server/php/methods.php');
$main = new main();
$project_id = $_POST['project_id'];
if (empty($project_id)) {
    list($name, $description, $path, $_images, $next_project_id, $previous_project_id = $main->projectRandom(7);
    $images = json_encode($_images);
}
else {
    list($name, $description, $path, $_images, $next_project_id, $previous_project_id) = $main->projectNumber(7, $project_id);
    $images = json_encode($_images);
}

當我檢查firebug時,一切似乎都沒問題,每個隱藏字段都分配了參數(project_id)。 但有時它確實有效,有時它不起作用。

螢火蟲:

螢火

任何幫助將不勝感激

您可以嘗試使用HTML 5數據 - 屬性。

這是一篇解釋它們的文章: http//ejohn.org/blog/html-5-data-attributes/

基本上只是添加一些東西

data-projectID="' + data.data[i].projectId + '"

然后在php腳本中查找該屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM