如果你能帮助我,我将非常感激。
仅当每个数据字符串具有唯一ID时,数据才会添加到数据库。通过单击按钮为每个字符串分配id是必要的。
如何转换变量$ i随每次单击而增加的代码,但开头的表中只有一个字符串?
<?
for($i=1; $i<2; $i++):
?>
<tr>
<td>
<label>
<input type="text" name="<?=$i?>[file]" value="<? $p=$_POST[$i]; echo($p['file'])?>" >
</label>
</td>
<td>
<label>
<input type="integer" name="<?=$i?>[xx]" value="<? $p=$_POST[$i]; echo($p['xx'])?>" >
</label>
</td>
<td>
<label>
<input type="integer" name="<?=$i?>[yy]" value="<? $p=$_POST[$i]; echo($p['yy'])?>">
</label>
</td>
<td>
<button type="button" id="add">+</button>
<button type="button" id="del">-</button>
</td>
</tr>
<script>
$(document).ready(function(){
$("#add").click(function(){
<?$i=$i+1;?>
$('#dynamic').append('<tr><td><label><input type="text" name="<?=$i?>[file]" value=""></label></td><td><label><input type="integer" name="<?=$i?>[xx]" value=""></label></td><td><label><input type="integer" name="<?=$i?>[yy]" value=""></label></td><td><button type="button" class="add">+</button> <button type="button" class="del">-</button></td></tr>');
});
});
</script>
<?endfor;?>
</tbody>
</table>
<input name="sub" type="submit" value="Create a graph" style="margin: 14px">
</form>
答案 0 :(得分:1)
一种解决方案是在每次点击时从数据库中获取$ i的值并将其递增。另一种解决方案是在会话中存储$ i的值,并在每次点击时获得该值。
答案 1 :(得分:1)
如评论中所述,您似乎正在尝试在客户端功能中运行服务器端代码。这将无法正常工作 - PHP的行将在标记发送回浏览器并呈现之前执行,单击按钮时此变量不会发生任何事情。
我的方法是对传入了action参数的页面进行ajax调用(例如,vote.php?action = add或vote.php?action = del)。然后在DB中增加或减少它。
现在,如果您希望在此页面上显示新值(例如,在两个按钮之间,与StackOverflow一样),则应使用$(selector).load("vote.php?action=add|del")
,然后确保此页面仅输出新结果。