0

我想更新 mysql 表中的列。基本上,该列是该数据库表条目的标志。

列的修改是将所有值重置为 0 并将所需的行设置为 1,因此我有post.php文件,它看起来像

<?php
require_once('class.uuid.php');

$connection = mysql_connect("---logindetailshere---");
$db = mysql_select_db("---dbnamehere---",$connection);

switch($_REQUEST['action']){
    case ...
        break;
    case ...
            break;
    case 'changeDisp':
        changeDisp($_REQUEST['uid']);
        break;
}

mysql_close($connection);

...

function changeDisp($uid){
    global $connection, $db;
    $q_string = "UPDATE Questions SET Displayed = 0";
    $query = mysql_query($q_string,$connection) or die( sendError(mysql_error() . '<br/><br/>' . $q_string) );
    $q_string = "UPDATE Questions SET Displayed = 1 WHERE Uid='${uid}'";
    $query = mysql_query($q_string,$connection) or die( sendError(mysql_error() . '<br/><br/>' . $q_string) );
}

?>

在网页上,我在项目旁边显示项目和单选按钮,目的是选择单选按钮并发布为所选项目设置标志 1,因此我有一个item.php文件

    <?php
        $i = 1;
        foreach ($qitem as &$q) {
            $options = explode(";", $q["Options"]);
            $displayed = '';
            if ($q["Displayed"] == 1) { $displayed='checked="yes"'; }

            echo("<div class='item' name='".$q["iUid"]."'>");
            echo("<div class='count'>".$i.".</div>");
            echo ("<div class='radio'><input type='radio' onclick='changeDisp(&#34;".$q["Uid"]."&#34;)' name='disp' ".$displayed."></div>");
            echo("<div class='left'>");
            echo("<h4>".$q["Value"]."</h4>");
            echo("<div class='details'>Typ: ".$q["Type"]."</div>");
            echo("<div class='details'>Skala: ".$options[0]." / ".$options[1]."</div>");
            echo("</div>");
            echo("</div>");
            $i++;
        }   
    ?>

在这里,我使用单选按钮来选择相关项目,我使用萤火虫检查了唯一的 id 值,这些值很好,我只想单击任何单选按钮并想触发该onclick=changeDisp()功能。

我不知道为什么页面不会自行重新加载并将选定的标志更改为 1。你能帮我解决这个问题吗?

提前致谢。

4

1 回答 1

1

如果不使用 javascript、jQuery 或 ajax 调用,就不能使用 onclick 函数调用 php 函数。您可以创建一个 ajax 脚本来 从item.php页面调用post.php并将结果返回给您。

这是创建所需功能的示例。这假设它$uid来自单选按钮,而不是实际的用户输入。如果用户可以直接输入一些你需要使用准备好的语句

 function changeDisp($uid)
{
$Mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
    if ($Mysqli->connect_errno)
    {
        echo "Failed to connect to MySQL: (" . $Mysqli->connect_errno . ") " . $Mysqli->connect_error;
        $Mysqli->close();
    }           
    $query = "UPDATE Questions SET Displayed = 1 WHERE Uid='".$uid."'";     
    $update = $Mysqli->query($query);
    if($update)
    {
        return true;
    }
    return false;
}
于 2013-01-12T02:43:24.117 回答