如何通过POST变量传递动态创建的输入值

时间:2013-03-01 10:55:12

标签: php mysql

我会简短 我有这个:

的functions.php

function consulta($sql){
    $consulta = mysql_query($sql, $GLOBALS['conexion']) or die (mysql_error());

    if(mysql_num_rows($consulta) == 0){
        return -1;
    }else if (mysql_num_rows($consulta) == 1){
        $fila = mysql_fetch_array($consulta);
        return $fila;
    }else{
        while($fila = mysql_fetch_array($consulta)){
            $lista[] = $fila;
        }
        return $lista;
    }
}

formgenerator.php

$art_ptes = consulta("SELECT * FROM articulos WHERE autorizacion = '0'");
echo "<form action='../private/control_insercion.php' method='POST'>";
echo "<input type='hidden' name='es_autorizacion' value='ok' />";
echo "<table id='aut_ptes'> 
    <tr><th colspan='8'>Autorizaciones pendientes</th></tr>
    <tr><th>Fecha</th><th>Título</th><th>Categoría</th><th>Artículo</th>     <th>Autor</th><th colspan='3'>Sanción</th></tr>";
if($art_ptes !== -1){
    if(is_array($art_ptes[0])){
        for ($i = 0 ; $i < count($art_ptes) ; $i++) {
            echo "<tr><td>".$art_ptes[$i][1]."</td> <td>".$art_ptes[$i][2]."</td><td>".$art_ptes[$i][3]."</td><td>".substr($art_ptes[$i][4], 0, 140)."<a href='#'>...ver</a></td><td>".$art_ptes[$i][5]."</td><td>AUT: <input name='autorizar".$i."' value='aut' type='radio' /></td><td>DEN: <input name='autorizar".$i."' value='den' type='radio' /></td><td>PTE: <input name='autorizar".$i."' value='pte' type='radio' checked='checked'/></td></tr>";
            echo "<input type='hidden' name='id".$i."' value='".$art_ptes[$i][0]."' />";
            echo "<input type='hidden' name='titulo".$i."' value='".$art_ptes[$i][2]."' />";
            echo "<input type='hidden' name='autor".$i."' value='".$art_ptes[$i][5]."' />";
        }
        echo "<tr><td colspan='8'><input type='submit' value='Enviar!' /></td></tr>";
    } else {
        echo "<tr><td>".$art_ptes[1]."</td><td>".$art_ptes[2]."</td><td>".$art_ptes[3]."</td><td>".substr($art_ptes[4], 0, 140)."<a href='#'>...ver</a></td></td><td>".$art_ptes[5]."</td><td>AUT: <input name='autorizar' value='aut' type='radio' /></td><td>DEN: <input name='autorizar' value='den' type='radio' /></td><td>PTE: <input name='autorizar' value='pte' type='radio' checked='checked'/></td></tr>";
        echo "<input type='hidden' name='id' value='".$art_ptes[0]."' />";
        echo "<input type='hidden' name='titulo' value='".$art_ptes[2]."' />";
        echo "<input type='hidden' name='autor' value='".$art_ptes[5]."' />";
        echo "<tr><td colspan='8'><input type='submit' value='Enviar!' /></td></tr>";
    }
} else {
    echo "<tr><td colspan='8'>SIN REGISTROS</td></tr>";
}
echo "</table>

    </form>";

control_insercion.php

/* ...more irrelevant code precedes */
} else if (isset($_POST['es_autorizacion']) and $_POST['es_autorizacion'] == 'ok') {

    $emails_den = array();
    $emails_aut = array();

    if(!isset($_POST['autorizar'])){
        $i = 0;
        while(isset($_POST['autorizar'.$i]) and $_POST['autorizar'.$i] == 'aut'){

            if($_POST['autorizar'.$i] == 'aut') {
                $consulta = ("UPDATE articulos SET autorizacion = '1' WHERE titulo = '".$_POST['titulo'.$i]."' AND autor = '".$_POST['autor'.$i]."' AND id = '".$_POST['id'.$i]."';"); 
                $resultado = mysql_query($consulta, $conexion) or die(mysql_error());
                $email = consulta("SELECT email FROM autores WHERE autor = '".$_POST['autor'.$i]."';");
                $emails_aut[] = $email;

            }else if($_POST['autorizar'.$i] == 'den') {
                $consulta = ("DELETE FROM articulos WHERE id = '".$_POST['id'.$i]."';");
                $resultado = mysql_query($consulta, $conexion) or die(mysql_error());
                $email = consulta("SELECT email FROM autores WHERE autor = '".$_POST['autor'.$i]."';");
                $emails_den[] = $email;
            }
            $i++;
        }
    } else {
        if($_POST['autorizar'] == 'aut') {
                $consulta = ("UPDATE articulos SET autorizacion = '1' WHERE titulo = '".$_POST['titulo']."' AND autor = '".$_POST['autor']."' AND id = '".$_POST['id']."';"); 
                $resultado = mysql_query($consulta, $conexion) or die(mysql_error());
                $email = consulta("SELECT email FROM autores WHERE autor = '".$_POST['autor']."'");
                $emails_aut[] = $email;

            } else if ($_POST['autorizar'] == 'den') {
                $consulta = ("DELETE FROM articulos WHERE id = '".$_POST['id']."';");
                $resultado = mysql_query($consulta, $conexion) or die(mysql_error());
                $email = consulta("SELECT email FROM autores WHERE autor = '".$_POST['autor']."';");
                $emails_den[] = $email;
            }

    }
    $uno = serialize($emails_den); //checking whther everything went right//
    $dos = serialize($emails_aut);
    header("location../public/pruebas.php?resultado=".$uno."&resultado2=".$dos."");
}

它包括咨询等待管理员授权的用户文章。

在formgenerator.php中,生成包含所有这些文章的动态表。

管理员在每个文章行点击授权或拒绝。

POST变量传递到处理器php页面,其中文章应该在相应的mysql表中更新为authirized或删除。

我要求一些帮助,因为所有这些脚本的最终结果是它将control_insercion.php页面返回空白。甚至标题也没有执行。

我将不胜感激任何帮助!

2 个答案:

答案 0 :(得分:0)

标头功能中存在语法错误。

header("location../public/pruebas.php?resultado=".$uno."&resultado2=".$dos."");

上述语法在位置后缺少冒号。它应该是

header("location:../public/pruebas.php?resultado=".$uno."&resultado2=".$dos."");

答案 1 :(得分:0)

解决!!!

抱歉浪费时间试图为我解决这些问题的人!!!!

经过一遍又一遍的审查后,我意识到我犯了两个假的错误。首先在control_insercion.php代码的第一行:...和$ _POST [&#39; es_autorizacion&#39;] ==&#39; ok&#39; ......承受不了。我删除了它,因为这个条件已在if语句中表达。第二个错误是在同一页的最后一行。单词location没有冒号(标点符号)
编码时我不得不放弃喝酒; =)
至少我希望这个问题可以帮助其他人看看如何将dynamyc数据传递给其他php页面 问候!