2014-04-07 17 views
-1

我有一个表单,用户可以更改价格。
如果价格变化大于某个水平,我想强制该人确认他们确定他们想要这样做。使用php确认动作的最佳方式

我通过比较贴出的变量来检查PHP的价格变化。

我需要做到这一点使用PHP不仅没有JavaScript的(这是确定如果PHP脚本重新加载)

有没有一种方法,我可以通过修改提交按钮,这样我可以看到他们在这样做确认阶段,如果是的话,我该怎么做。

请参阅下面的代码我可以将提交按钮更改为确认按钮,并将其作为验证的一部分在帖子中进行测试,然后运行单独的帖子脚本更新数据库。

数学部分是不是我有代码的问题。 问题是这样的。

  • 第一次正常页面loades。
  • 用户进行更改并按提交。

我的代码然后发现post方法做验证检查,如果更改太大,我希望表单要求用户确认。

我希望得到如何将提交按钮更改为确认按钮,然后当按下脚本如何检测“确认”(类似于我现在检测提交的方式)的建议

========

目前我发布表单回到它自己,然后检查使用的后期方法。

if (($_SERVER['REQUEST_METHOD'] == 'POST') && (!EMPTY($_POST['action']))) { 

    // Check the form values here 
    // if they are too big a change then make the user confirm 
} 

形式动作编码如下:

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" name="xyz"> 

按钮编码如下的提交:

<input type="submit" name="action" style="width:60px" value="Submit"/> 
+1

用户chnage价格在文本框或下拉列表?发布html的问题,我们可以理解连击 –

+0

Ajax请求和检查?这个怎么样.. –

+0

@CodingAnt他说:“我需要这样做,使用PHP只有不JavaScript。” – 13ruce1337

回答

0

我将尝试以下内容作为我的问题的答案。手指交叉。

$action = "submit";  //set to a submit action first time around 

if (($_SERVER['REQUEST_METHOD'] == 'POST') && (!EMPTY($_POST['action']))) { 

    // Do this section is the form posted check the form is valid and then run the post_edit_fuel.php script to update the database 

    $action = $_POST['action']; 


    if ($action == "confirm") { 

     //the user pressed confirm 

      /* curl code here to post the form */ 

     exit(); 
    } 

下面这一段代码,如果价格变化太大,我设置$行动=“确认”,并在网页上显示的消息。

提交按钮现在定义为:

<input type="submit" name="action" style="width:60px" value="<?php echo $action; ?>"/> 
+0

此方法有效。 –

2

你不能只用PHP做到这一点。

PHP是一种服务器端语言,可在页面加载时进行操作。因此,如果您要进行更改(如您所说的超过20%),您必须首先提交表单以使用PHP进行检查。

要做到这一点,而不这样做的唯一方法是使用JavaScript。但是,你可以(我假设为安全)在PHP中验证它,但通过使用JavaScript。

因此,例如在您的网站上为输入框更改创建一个侦听器。当它发生变化时,您可以将ajax调用发送到某个具有您需要的逻辑的PHP文件。它会返回一条消息,然后您可以将该消息放置在页面上的div上。

你绝对需要用JavaScript来做到这一点。然而,验证将通过PHP(通过ajax调用)起作用。要在PHP中完成,只需要一个单独的页面作为验证页面,或者按照触摸板的说明,您需要重新加载页面,但这样做笨拙且效率低下。

+1

好吧,你可以做到这一点,但不是没有重新加载页面 – Touchpad

+1

是的抱歉,编辑澄清 –

+0

我不介意脚本是否重新加载罚款 –

0

您需要验证两次,所以要么使用JavaScript(在Ajax中),要么使用php通过插入确认页来完成,但您必须保存用户第一次提交的表单。

正如你想要在服务器端进行验证,没有干净的方式来做到没有Javascript。