【问题标题】:Wordpress php switch statement not working, only first case triggers actions - multi submitWordpress php switch 语句不起作用,只有第一种情况会触发操作 - 多提交
【发布时间】:2014-01-15 00:43:57
【问题描述】:

我正在开发一个 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>

我创建了一个函数,并创建了一个调用该函数的 switch case。

<?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 - 它只会更新第一行)

【问题讨论】:

    标签: php html wordpress forms submit


    【解决方案1】:

    您的开关评估 isset 返回的“真”或“假”

    if(isset($_POST['action'])
    {
    switch($_POST['action']) 
      {
      case 's1': 
      update_slider_db(1);
      break;
    
       case 's2':
       update_slider_db(2);
       break;
    
      }
    }
    

    【讨论】:

    • 感谢您的快速回复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多