PHP / HTML表单数据多页信息传输,图像信息

时间:2013-05-20 11:17:21

标签: php html image forms multipage

我创建了一个摄影比赛,当用户在照片中看到自己时,他们会点击(我在这张照片中)标注。

这会弹出一个表单供他们填写。我从表单中收集数据并将其保存到数据库时没有任何问题。

我的问题是我需要能够参考他们所在的照片。

首先,我需要将照片名称/ ID从第一页转移到第二个弹出的竞赛表格页面,然后我需要将两者保存到数据库中。

有什么建议吗?我尝试使用会话变量来将照片名称/ ID从第一页调用到第二页。

非常感谢任何帮助。


更新后的代码:

第1页:照片库样本。尝试隐藏表单字段来调用数据,但显然它不会从这些隐藏字段调用照片信息。

<li>
<a class="thumb" name="007" id="007" href="images/9133440_DSC_0087.jpg" title="Title #6"><img src="images/9133440_DSC_0087_thumb.jpg" alt="Title #6" /></a>
</li>
</ul>
</div>

<div id="inphoto">

<a href="#" onclick="wopen('compentry.php?imageid=<?php echo $imageID; ?>', 'popup', 448, 590); return false;"><img src="assets/inphotobutton.jpg"></a>

</div>

第2页:带表格的比赛录入页面。

<div id="form">

<form name="epcomp" id="epcomp" method="GET" action="form.php" >

<p class="name"><label>Full Name:</label><br/> <input type="text" name="name" id="name" value="Your Name" onblur="if(this.value == '') { this.value='Your Name'}" onfocus="if (this.value == 'Your Name') {this.value=''}" maxlength="30" required/></p>

<p class="email"><label>Your Email:</label><br/> <input type="email" name="email" id="email" value="Your email" onblur="if(this.value == '') { this.value='Your email'}" onfocus="if (this.value == 'Your email') {this.value=''}" maxlength="60" required /> </p>

<p class="entry"><label>Your favourite festival moment: <span style="font-size:10px;">(Max 50 words)</label> <br/> 

<p><textarea cols="40" rows="5" name="entry" id="entry" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" maxlength="50" required>Enter you answer here...</textarea></p>

<p class="button"><input class="button" type="submit" value="Enter Competition" name="formSubmit"/></p>

<?php echo '<input type="hidden" name="photoId" value="' . $_GET['imageID'] . '">' ?> 

</form>

第3页:我的表格数据页面。

$imageID = $_GET['imageID'];
$varName = $_GET['name'];
$varEmail = $_GET['email'];
$varEntry = $_GET['entry'];

$query = "insert into comp_entry (imageID, name, email, entry) values ('$imageID' , '$varName' , '$varEmail' , ' $varEntry')";

$qresult = mysql_query($query);

1 个答案:

答案 0 :(得分:0)

input代码中没有值。

<form method="POST" action="compentry.php" onClick="wopen('compentry.php', 'popup', 448, 590); return false;">

<input type="hidden" name="photoName">
<input type="hidden" name="photoID">
<input type="image" src="assets/inphotobutton.jpg" name="submit" value="" class="submit" alt="Submit">
</form>

你可以:

  1. 插入获取值<form method="POST" action="compentry.php?imageid=<?php echo ...; ?>"并以第二种形式
  2. 检索它
  3. 使用<input type="hidden" name="photoId" value="...">插入帖子变量(您忘记了value标记)。
  4. 由于您没有提交按钮,因此无法在您的示例中使用POST。而不是<input type="image"您需要input type="submit"。但是提交不会打开另一个窗口,所以你需要以其他方式传递变量。

    因此,我会留在第一个选项中,但是不需要<form>,所以请使用以下代码:

    <a href="#" onclick="wopen('compentry.php?imageid=<?php
      echo $imageID; // here goes PHP code
    ?>', 'popup', 448, 590); return false;">Click to open form</a>
    

    在竞赛表格中,您可以使用$_GET['imageid']了解您的目标。

    修改

    您需要决定如何实现目标。如果您使用form,则可以通过get或post方法传递参数。但是,您也可以使用get方法将变量传递到URL中。

    由于第二种方式更简单,我告诉您删除整个form代码并通过在a代码的onclick事件中调用此网站来传递您的图片ID,但您可以选择您喜欢的任何标签(我建议您在第一条评论中使用div)。

    当我在此行onclick="wopen('compentry.php?imageid=***', 'popup', 448, 590);中打开页面时,您需要代替***插入您的图片ID。我提出了PHP echo函数,这就是通常的做法。

    您的第一页仅需要其他内容。单击该元素将弹出并向compentry.php发送请求,通过get方法传递imageid变量。如果您创建表单,方法获取,操作compentry.php,隐藏input字段“imageid”值 ,也是如此。您可以看到调用URL compentry.php?imageid = 比所有这些form内容简单得多。

    这就是全部 - 当你准备就绪时,你必须编写弹出页面的代码。这是你的第二个评论。此图片ID将由$_GET["imageid"]检索。因此,如果这也是具有多个字段的表单,则建议使用post方法(不是get)。

    所以这一行

    <input type="hidden" name="photoId" value="photoID">
    

    应该(在PHP中)看起来像

    echo '<input type="hidden" name="photoId" value="' . $_GET['imageid'] .'">
    

    您需要将$_GET["imageid"]从第一页获得的图片ID添加到第二页的HTML中,以便您可以将其进一步发送到最后一页。

    <强>摘要

    1. 照片库使用<div onclick="wopen('compentry.php?imageid=***', 'popup', 448, 590);">。标有***的代码由PHP插入并包含图像ID。
    2. 用户点击此div,JavaScript工作,打开新的弹出窗口,浏览器显示:请将此页面的内容发送给我compentry.php?imageid=***
    3. 服务器打开你的compentry.php,绘制一个<form action="form.php" method="post">(如果你愿意,可以获取)
    4. 绘制HTML时遇到需要的<input type="hidden" name="imageid" value="####">,在服务器(实际上是PHP)将echo内容中$_GET['imageid']从照相馆收到的内容。
    5. 用户点击提交按钮,表单已提交。在他输入的变量中有一个隐藏的变量imageid,它具有相同的名称(可能有不同的,没有问题),但与照片库中的值相同。
    6. 文件form.php将所有变量作为新变量接收。