mysqlのテーブルの列を更新したい。基本的に、列はそのdbテーブルのエントリのフラグです。
列を変更すると、すべての値が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) );
}
?>
Webページで、アイテムとアイテムの横にラジオボタンを表示します。目的は、ラジオボタンを選択し、選択したアイテムのフラグ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("".$q["Uid"]."")' 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++;
}
?>
ここでは、ラジオボタンを使用して関連アイテムを選択しています。firebugを使用して一意のID値を確認しました。値は問題ありません。ラジオボタンをクリックして、onclick=changeDisp()
関数をトリガーしたいだけです。
ページがそれ自体をリロードせず、選択したフラグを1に変更しない理由がわかりません。この問題の解決に協力していただけませんか。
前もって感謝します。