Php 动态生成的表单无法正常工作

Php 动态生成的表单无法正常工作,php,javascript,html,ajax,dynamic,Php,Javascript,Html,Ajax,Dynamic,我有这个ajax函数,在这里我动态地填充来自数据库的元素列表。它们中的每一个都作为一个显示图片和一个名称。它有一个隐藏字段,其中包含一个通过POST在另一个页面上捕获的变量,并显示一个图像和一些信息 问题是,有时隐藏字段中的ID参数似乎没有被发送。表单已发送,但它似乎没有捕获隐藏变量,显示的是随机图像和信息,而不是我最初单击的图像和信息 这是我的密码: function absurdSearch(textoBuscar){ $.ajax({ type : "POST

我有这个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);

            };
        }
    })
};
函数荒诞搜索(textobusar){
$.ajax({
类型:“POST”,
url:“service.php”,
数据类型:“json”,
数据:{
行动:“荒谬搜索”,
荒诞文本
},
成功:功能(数据){
$(“#testDiv”).empty();
var i;
对于(i=0;i
下面是实际捕获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);
}

您可以尝试使用HTML5数据属性

以下是一篇解释这些问题的文章:

基本上,只需按照

data projectID=“”+data.data[i].projectID+”


然后在php脚本中查找该属性。

提示:在脚本中,不要同时做两件事,最好检查请求的输入是否是操作的预期输入。这将允许您从随机移动到不同的操作。在这里,您可以同时做两件事,当变量为空时,您可以选择一个随机图像,这似乎是您所描述的错误,但这是编程的功能。我还建议让PHP端构建实际的HTML。在php文件(或嵌入php的html文件)中读取和编辑html要比在javascript中读取和编辑容易得多。生成复杂的元素(比如有很多子元素的表单)注入dom会导致比以往任何时候都要多的错误。是的,但实际上需要使用随机函数,因为客户端希望每次加载页面时都对随机图像/项目收费。抱歉,gdoron,我如何接受答案?Dan,你的意思是将其构建为ajax响应而不是成功事件?