<form action='http://www.myadress.com/insert_wallet.php' method='post'>
<iframe name='hidden-form' src='...' class='hf'></iframe>
<input type='checkbox' name='pago' value='pago'> <br> </div><div class='tb1_small sc '>
<input type='checkbox' name='recibo' value='recibo_entregue' > <br></div><div class='tb3_md sc '>
<input type="hidden" name="id_p" readonly value=" <?php echo "$events[0]";?> ">
<input type='Submit' value='Salvar'>
</form>
和我的insert_wallet.php:
// Get values from form
$pago=mysql_real_escape_string($_POST["pago"]);
$recibo=mysql_real_escape_string($_POST["recibo"]);
$id_p=mysql_real_escape_string($_POST["id_p"]);
// Insert data into mysql
$sql=" UPDATE bruno_wallet SET pago=$pago, recibo=$recibo where id=$id_p " ;
$result=mysql_query($sql);
这有什么不对吗?不知怎的,它不起作用...我想用行标识$id_p
更新行pago e recibo的值。
答案 0 :(得分:1)
请检查此行代码
<input type="hidden" id="id_p" name='id_p'readonly value=" <?php echo "$events[0]";?> ">
您确定传递的是id_p的正确值吗?您回显双引号“”
包围的值不喜欢这个
<?php echo "$events[0]";?>
试试这个
<?php echo $events[0]; ?>
再次,你在哪里得到等于你正在回应的变量$ events [0]的值。
可替换地。
还要确保首先将表单作为文本输入,以确保在再次隐藏之前可以看到回显的值
<input type="text" id="id_p" name='id_p'readonly value=" <?php echo $events[0]; ?> ">
或者您可以直接从表单输入传递id_p值,看看它是否通过post更新数据库。实施例
<input type="text" id="id_p" name='id_p'readonly value="1234">
其中1234对应于被回显的id_p的值
最后,如果您回显的此值不是数字或整数,则可能容易受到XSS攻击。使用htmlspecialchars()
或htmlentities()
函数可以规避此攻击。记住,Mysql_Connect从Gaint Sign Warning开始被删除。您最好开始使用PDO或Mysqli
最终,您的sql更新状态应该类似于
$sql=" UPDATE bruno_wallet SET pago='$pago', recibo='$recibo' where id='$id_p'" ;
如果这样可以解决您的问题,请将其标记为正确答案