Dear 大大們
於這支程式還有一些php and MYSQL的邏輯,有點想不透...
該如何把select option人名放到php語法MYSQL裡頭...
最後再以以下圖片的方式以$id = $_SESSION['username']
登入進來的人名去判斷
這個登入者是否在資料庫有這個select option人名的資料,有資料就select option就反灰
如果沒有就不要反灰!!!!(在當頁php頁就要判斷出來)
有辦法呈現這個邏輯嗎...麻煩大大給我個方向...
php MYSQL語法
<?php
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
$row10 = mysql_fetch_row($result10);
?>
select option語法
<?php
if ($id == 'D0373' or $id == 'D0483')//(資訊課)
{
echo "部門/姓名: <SELECT NAME='ptprovince' SIZE='1' >
<OPTION value='0'>---請選擇---</OPTION>
<optgroup selected='true' label='資訊課'>";
if ($id == 'D0373'){echo "<option value='alpha'>alpha</option>";}
if ($id == 'D0373'){echo "<option value='harry'>harry</option></SELECT>";}
}
?>
//一般的 option 長這樣
<option value="January">January</option>
//有 selected 的 option 長這樣
<option value="January" selected="selected">January</option>
//所以差別在於「判斷條件以決定是否要加那段 selected="selected"」
//這段要用 php 寫,範例如下
<option value="January" <?=$row['month'] == 'January' ? ' selected="selected"' : '';?> >January</option>
海綿大大,用這樣的方法,登入者是否能連進來這頁PHP就自動偵測select. Mysql裡面有資料直接反灰,沒有就不反灰
<option value="alpha_hong" <?=$id == 'alpha_hong' ? ' selected="selected"' : '';?> >alpha_hong</option>
海綿大大,可能我表達有點錯誤,
假如我登入者是test,mysql資料表有alpha跟Harry的資料,因為這兩個user都是登入者test人名去打這兩個人的分數,所以我想呈現就是當test登入進來下拉式選單的PHP,會偵測MySQL資料庫的資料表如果有Harry的資料就反灰,如果資料表沒有Harry資料就不反灰……
表達錯誤不好意思ˊˋ
<option value="Harry" <?=MySQLHas('Harry') ? ' selected="selected"' : '';?> >Harry</option>
function MySQLHas($pname) {
//到 MySQL 裡去找是否有 $pname 的資料
//如果有
return true;
//如果沒有
return false;
}
感謝海綿大,我在試試看,有問題在反應上來 感謝!!
Dear 海綿大...
感覺Select Option沒什麼反應耶...是我CODE哪裡有問題嗎...
我發覺改了Option這段=MySQLHas($row10[3])== ('harry_chien')?
== 改成 != 就會反灰,如果沒有用==就不會反灰,代表我的SQL是不是沒抓到我的NAME的名字,不過我Option那段我印出來是有的...
不知道是哪邊是否有問題...
<?
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10))
echo $row10[3];
function MySQLHas($row10)
{
if ($row10['englishname'] == 'harry_chien')
//到 MySQL 裡去找是否有 $pname 的資料
//如果有
{return true;}
//如果沒有
else
{return false;}
}
?>
<SELECT NAME='test' SIZE='1' ONCHANGE=ChangeCity()>
<OPTION value='0'>---請選擇---</OPTION>
<option value="Harry"<?=MySQLHas($row10[3])== ('harry_chien')? 'disabled=disabled"' : '';?>>Harry</option>
</SELECT>
<?
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10))
echo $row10[3];
function MySQLHas($pname)
{
if ($pname == 'harry_chien')
{return true;}
else
{return false;}
}
?>
<SELECT NAME='test' SIZE='1' ONCHANGE=ChangeCity()>
<OPTION value='0'>---請選擇---</OPTION>
<option value="Harry" <?=MySQLHas($row10[3]) ? ' selected="selected"' : '';?> >Harry</option>
</SELECT>
Dear 海綿大,感謝回答...
我改成您的CODE,還是不會顯示反灰的效果!!!
明明SQL裡面有資料,卻無法達到FUNTION條件@@
<?
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10))
echo $row10[3];
function MySQLHas($pname)
{
if ($pname == 'harry_chien')
{return true;}
else
{return false;}
}
?>
<SELECT NAME='test' SIZE='1' ONCHANGE=ChangeCity()>
<OPTION value='0'>---請選擇---</OPTION>
<option value="Harry" <?=MySQLHas($row10[3]) ? 'disabled="disabled"' : '';?> >Harry</option>
</SELECT>
好吧
我承認我寫的程式沒有上機實測過
以下是我測試過的程式碼
如果可以用
就剩下「確定傳進去的 $row10[3] 的值」沒錯
如果還是不能用
就請您另請高明了
<?
//$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
//while($row10 = mysql_fetch_array($result10))
//echo $row10[3];
function MySQLHas($pname) {
if ($pname == 'harry_chien') {
return true;
} else {
return false;}
}
?>
<SELECT NAME='test' SIZE='1' ONCHANGE=ChangeCity()>
<OPTION value='0'>---請選擇---</OPTION>
<option value="Harry" <?=MySQLHas('harry_chien') ? ' disabled=disabled' : '';?> Harry</option>
</SELECT>
好的,海綿大,明天我在試試看 感謝您……
Dear 海綿大,還是感謝幫忙...
用妳的CODE確實可以用,只是抓不到$row10[3]裡面的資料去比對...
不知道是哪裡出了問題,而且還印的出來$row10[3]資料@@
裡面有harry and pulley資料,而沒有alpha資料,改成以下CODE,還是都一起反灰
<?
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10))
echo $row10['englishname']."<br>";
function MySQLHas($pname) {
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10))
if ($row10[3] == 'harry_chien') {
return true;
} else {
return false;}
}
?>
<SELECT NAME='test' SIZE='1' ONCHANGE=ChangeCity()>
<OPTION value='0'>---請選擇---</OPTION>
<option value="harry_chien" <?=MySQLHas('harry_chien') ? ' disabled=disabled' : '';?>>harry_chien</option>
<option value="pulleylee" <?=MySQLHas('pulleylee') ? ' disabled=disabled' : '';?>>pulleylee</option>
<option value="alpha_hong" <?=MySQLHas('alpha_hong') ? ' disabled=disabled' : '';?>>alpha_hong</option>
</SELECT>
根據大大你上述的需求
不過大大你提到反灰是要將select給disabled嗎? 不在給人變更內容嗎?
大大,是否有範例呢?
是阿用Disabled反灰,不過是在當頁PHP直接條件達成這樣的效果
簡單的語法,你可以先試試看。
如果合用,再把資料庫的語法套用上去。
<html>
<head>
<meta charset='utf-8'>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'></script>
<script type='text/javascript'>
$(document).ready(function() {
//$('#Select').change(function() {
$('#Select').on('change', function() {
$('#Form').submit();
});
});
</script>
</head>
<body>
<?php
$mysql_value = "alpha"; //假設資料庫中存在alpha這個帳號
if ( isset($_POST['Select']) && $_POST['Select'] == $mysql_value){
//POST比對到資料庫中存在alpha
$disable = 1;
echo "『alpha』帳號為真,故鎖定Select。";
} else {
$disable = 0;
}
?>
<form id='Form' action="" method='post'>
<select id='Select' name='Select' <?php if ($disable == 1){ echo "disabled"; }?>>
//disabled用在select中,才有將select反灰的作用。
<option value='0'>請選擇</option>
<option value='alpha' <?php if (isset($_POST['Select']) && $_POST['Select'] == "alpha"){ echo "selected";} ?>>alpha</option>
<option value='Harry' <?php if (isset($_POST['Select']) && $_POST['Select'] == "Harry"){ echo "selected";} ?>>Harry</option>
</select>
</form>
</body>
</html>
Dear kerryindex大大~
我用了海綿大的CODE...
只是抓不到$row10[3]裡面的資料去比對...
不知道是哪裡出了問題,而且還印的出來$row10[3]資料@@
裡面有harry and pulley資料,而沒有alpha資料,改成以下CODE,還是都一起反灰
<?
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10))
echo $row10['englishname']."<br>";
function MySQLHas($pname) {
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10))
if ($row10[3] == 'harry_chien') {
return true;
} else {
return false;}
}
?>
<SELECT NAME='test' SIZE='1' ONCHANGE=ChangeCity()>
<OPTION value='0'>---請選擇---</OPTION>
<option value="harry_chien" <?=MySQLHas('harry_chien') ? ' disabled=disabled' : '';?>>harry_chien</option>
<option value="pulleylee" <?=MySQLHas('pulleylee') ? ' disabled=disabled' : '';?>>pulleylee</option>
<option value="alpha_hong" <?=MySQLHas('alpha_hong') ? ' disabled=disabled' : '';?>>alpha_hong</option>
</SELECT>
function MySQLHas($pname) {
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10))
if ($row10[3] == 'harry_chien') {
return true;
} else {
return false;}
}
問題出在你的function裏
你從外部給於$pname,所以你的if判斷式應該要修改
if ($row10[3] == 'harry_chien') {
將harry_chien改為$pname
不過我從你的程式碼中沒看見你要怎麼判斷你的登入者是那位呢?
依這段邏輯的結果,是你的select還是會全部反灰的。
資料庫每一個user帳號都是存在,所以回傳true。
Dear kerryindex大大,好的 我在TryTry看,有問題在回覆上來,感謝幫助小弟…這關卡好久ˊˋ
Dear kerryindex大大!!!
我覺得很像是SQL那段出問題...我用php IF條件還是印出沒有
不過echo $row10['englishname']."";是有資料的...
感覺上很像是SQL的問題...
卡好久 嗚嗚
<?
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10, MYSQL_ASSOC))
echo $row10['englishname']."<br>";
if ($row10['englishname']== 'harry_chien')
{echo '有';}
else {echo '沒有';}
?>