在PHP表单的select查询中使用JavaScript变量作为表名

时间:2015-11-12 20:46:56

标签: javascript php

我正在使用一种函数,我在其中为变量赋值tablename,如:

function mshirt(){
    var tbname='m_shirts';
}

然后在PHP表单操作部分:

include 'database_connection.php';
$tablename=tbname;
if(isset($_POST['submit'])){

    $Size=$_POST['size'];
    $Color=$_POST['color'];
    $Code=$_POST['code'];
    $Brand=$_POST['brand'];

    $sql="INSERT INTO `$tablename` (size,color,code,brand) VALUES('$Size','$Color','$Code','$Brand')";

    if(mysqli_query($conn,$sql)){
        echo("Added Succesfully");
    }
    else 
        echo("Failed to Add");

问题在于它假定tbname未定义为常量。

2 个答案:

答案 0 :(得分:0)

<强>问题

错误是由于行:

$tablename=tbname;

tbname是一个JS(客户端)变量:你不能简单地将它输入PHP(服务器端)并期望它能够工作。您需要将其作为POST数据发送给PHP,就像您将其他数据一样。

<强>解

如果您是通过AJAX和jQuery执行此操作,例如:

var tbname = 'm_shirts';

$.ajax({
    url: "path_to_php_file.php",
    method: "post",
    data: {
        tbname: tbname,
        // the rest of form data (the request) to be sent
    }
});

在PHP中,您可以将其作为常规$_POST变量索引:

$tbname = $_POST["tbname"];

(如果您使用常规表单或其他方法发送数据,则需要修改此...这只是演示的示例。)

答案 1 :(得分:-1)

您正试图混合语言......

您应该通过ajax或表单发送表的名称,然后使用$ _GET或$ POST

来捕获您的值