PHP 生成 POST 表单
PHP generate POST form
我根据从数据库中获得的一些数据生成一个表单。
这是我的构造函数:
php_core.php
<?php
echo "<style>";
echo ".spoll{ -webkit-box-sizing: border-box;";
echo "-moz-box-sizing: border-box;";
echo "box-sizing: border-box;";
echo "padding: 10px;";
echo "padding-top: 5px;";
echo "}";
echo "</style>";
//DISPLAY FUNCTION
function display($x){
require("db_conx.php");
$sql = "SELECT * FROM polls WHERE id='$x' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$poll_id = $row['id'];
$topic = $row['topic'];
$startdate = $row['startdate'];
$stopdate = $row['stopdate'];
$active = $row['active'];
$type = $row['type'];
$title = $row['title'];
$pwidth = $row['pwidth'];
$borcolor = $row['borcolor'];
$borwidth = $row['borwidth'];
$fcolor = $row['fcolor'];
$bfcol = $row['bfcol'];
$bg = $row['bg'];
$borrad = $row['borrad'];
$abars = $row['abars'];
$bcol = $row['bcol'];
$brad = $row['brad'];
}
//DISPLAY THE POLL
$aquery = "SELECT * FROM answers WHERE parent='$poll_id'";
$result = mysqli_query($db_conx, $aquery);
echo '<div class="spoll" style="width: '.$pwidth.'px; border: '.$borwidth.'px solid '.$borcolor.'; border-radius: '.$borrad.'px; color: '.$fcolor.'; background-color: '.$bg.';">';
echo '<p><b>'.$title.'</b></p>';
echo '<p style="font-size: 13px;">'.$topic.'</p>';
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
// SELECT ANSWERS
if($type == 'single'){
while ($usersRow = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo '<input type="radio" name="rad" value="'.$usersRow['id'].'"/>'.$usersRow['content'].'<br><br>';
}
} else {
$i = 0;
while ($usersRow = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo '<input type="checkbox" name="check[]" value="'.$usersRow['id'].'"/>'.$usersRow['content'].'<br><br>';
$i++;
}
}
//echo '<button style="border-radius: '.$brad.'px; border: none; padding: 10px; width: 100%; margin: auto; background-color: '.$bcol.'; color:'.$bfcol.'" value="VOTE" onclick="vote('.$poll_id.');"><b>VOTE</b></button>';
echo '<input type="submit" value="Vote" style="border-radius: '.$brad.'px; border: none; padding: 10px; width: 100%; margin: auto; background-color: '.$bcol.'; color:'.$bfcol.'">';
echo '</form>';
echo '</div>';
}
// END OF THE DISPLAY FUNCTION
?>
以下是我显示表单的方式:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php include("php_includes/php_core.php"); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php display('15'); ?>
<span id="status"></span>
<?php
if(isset($_POST['submit'])){
echo "Posted!";
?>
</body>
</html>
我不知道为什么,但它不会提交值!该函数正确输出表单,我已经通过查看页面源代码对其进行了检查。我不知道为什么它不起作用,所以我需要你的帮助。我一直在一次又一次地修改脚本,没有结果。
关于此脚本的其他(可选)问题:您是否知道如何使用 AJAX 提交此表单而无需任何其他 HTML 标记并在不重新加载页面的情况下刷新函数输出?我找到了一些方法,但我必须将函数包装在div 中,并且我需要保留输出结构和方法,所以我没有想法。
您需要
向提交按钮添加name
属性。
<input type="submit" value="Vote">
应该是
<input name="submit" type="submit" value="Vote">
您正在检查$_POST['submit']
是否存在,而不存在。
对于其他问题,我建议使用jQuery's
Ajax 函数。看这里
它不会提交表单,因为您尚未为按钮设置任何name
。
if(isset($_POST['submit'])){
}
submit
不存在。
更改为:
echo '<input type="submit" name="submit">';
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- 试图在表单post之后使用jQuery.post()重定向用户
- 如何将CSS和HTML元素呈现回客户端's浏览器从表单POST帐户和JavaScript
- 防止表单 POST 重定向发生,但仍保留引导验证
- 节点 Js 请求发布不将表单 POST 数据发送到 LAMP 服务器
- 通过AJAX在简单表单POST上收到500错误 - 不确定出了什么问题
- 将 Rails 表单 POST 数据传递给 JS 点击事件
- 提交 JQuery 表单 $.post() 处理成功时的显示消息
- 使用ajax/jquery模拟html表单POST
- X-editable with ASP MVC View,如何将提交的表单POST操作获取到控制器
- 无法在表单POST中调用.js
- angularjs表单post(使用ngUpload上传文件)和nodejs服务器的跨域问题
- 动态表单Post无法在mozilla中工作
- 表单POST未显示在控制器中
- Javascript防止表单post,如果没有验证
- 表单Post数据使用Ajax和jquery
- 用MVC表单Post发送HTML字符串
- 动态地向表单post添加数据
- 我如何从jQuery .submit()事件对象访问表单POST数据
- 提交带有一些附加参数的表单(post,而不是ajax)