Wordpress php switch语句不起作用,只有第一种情况触发动作 - 多次提交

时间:2013-12-27 12:05:46

标签: php html wordpress forms submit

我正在使用WordPress插件,我正在尝试将数据插入数据库。

我使用了多表格并提交了

<h1>Slider Menu</h1>
<h3>slider image 1</h3>
<form action="" method="post">
IMAGE URL: <input type="text" name="img" />
TEXT: <input type="text" name="text" />
URL: <input type="text" name="url" />
<input type="submit" name="action" value='s1'>
</form>

<h3>slider image 2</h3>
<form action="" method="post">
IMAGE URL: <input type="text" name="img" />
TEXT: <input type="text" name="text" />
URL: <input type="text" name="url" />
<input type="submit"  name="action" value='s2'>
</form>

我做了一个功能&amp;我做了一个调用这个功能的开关盒。

<?php
    function update_slider_db($x)
    {
        require_once('../wp-load.php');

        global $wpdb;

        // SQL query and update
        $slider_img = $_POST['img'];
        $slider_title = $_POST['text'];
        $slider_url = $_POST['url'];

        $wpdb->update('wp_slider', array('img'=>$slider_img, 'title'=>$slider_title, 'url'=>$slider_url), array('id'=>$x));
    }

 //switch case which button is pressed
 switch(isset($_POST['action'])) {
    case 's1': 
    update_slider_db(1);
    break;
    case 's2':
    //$x=2;
    update_slider_db(2);
    break;
}

但不幸的是,它总是进入案例1。

我的意思是我无法更新第1行以外的行(无论我点击哪个SUBMIT - 它只更新第一行)

1 个答案:

答案 0 :(得分:0)

您的开关评估isset

返回的“true”或“false”
if(isset($_POST['action'])
{
switch($_POST['action']) 
  {
  case 's1': 
  update_slider_db(1);
  break;

   case 's2':
   update_slider_db(2);
   break;

  }
}