我创建了一个摄影比赛,当用户在照片中看到自己时,他们会点击(我在这张照片中)标注。
这会弹出一个表单供他们填写。我从表单中收集数据并将其保存到数据库时没有任何问题。
我的问题是我需要能够参考他们所在的照片。
首先,我需要将照片名称/ 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);
答案 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>
你可以:
<form method="POST" action="compentry.php?imageid=<?php echo ...; ?>"
并以第二种形式<input type="hidden" name="photoId" value="...">
插入帖子变量(您忘记了value
标记)。由于您没有提交按钮,因此无法在您的示例中使用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中,以便您可以将其进一步发送到最后一页。
<强>摘要强>
<div onclick="wopen('compentry.php?imageid=***', 'popup', 448, 590);">
。标有***
的代码由PHP插入并包含图像ID。compentry.php?imageid=***
<form action="form.php" method="post">
(如果你愿意,可以获取)<input type="hidden" name="imageid" value="####">
,在服务器(实际上是PHP)将echo
内容中$_GET['imageid']
从照相馆收到的内容。 imageid
,它具有相同的名称(可能有不同的,没有问题),但与照片库中的值相同。