webForumDet fria alternativet

Visa textruta om kursen tillåter det!

PHP

6 svar · 350 visningar · startad av Dr-man

Medlem sedan juli 2002732 inlägg
Frågan#1

Man har select-box och via den väljer en kurs, som är lagrad i en
MySQL-tabell. När man väljer kursen och om en viss kolumn har värdet
Nej, så skall inte texten-rutan vara synlig. Jag använder php, som scriptspråk. Går det att fixa?

Medlem sedan aug. 20002 975 inlägg
#2

Det gör väl enklast med en if-sats:

if ($row['kolumnnamn'] != 'Nej') {
   // Skriv ut din textruta
}
Medlem sedan juli 2002732 inlägg
#3

Problemet är egentligen hur man får värdet fram från MySQL-tabellen via en ändring av select?

Medlem sedan aug. 20002 975 inlägg
#4

Det borde gå att göra något med HttpRequest, något jag inte är så säker på, men jag har använt något liknande detta på en sida:

HTML/Javascript-koden:

<script type="text/javascript">
<!--

var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}
  
function check(idnr) {

  if (idnr == '' || idnr == 0) {
    document.getElementById('textbox').style.display = 'block';
    return;
  }

  var url = "check.php?id=" + idnr;
  var show_text = 1;

  xmlhttp.open( 'GET' , url, true);

  xmlhttp.onreadystatechange=function() {					// Goodies ++
    if (xmlhttp.readyState==4) {
      show_text = xmlhttp.responseText;						// Make a fuss
      var show = show_text == 0 ? 'block' : 'none';
      document.getElementById('textbox').style.display = show;
    }
  }
  xmlhttp.send(null);

}

// -->
</script>

<form name="formname" action="" method="post">

<select name="select_name" onchange="check(this.options[this.selectedIndex].value)">
<option value="">Välj</option>
<option value="1">Val 1</option>
<option value="2">Val 2</option>
<option value="3">Val 3</option>
</select>

<div id="textbox" style="display:block">
<input type="text" name="text_name" />
</div>

Och sedan check.php

<?php

include 'conn.php'; // databasanslutningen

$sql = "SELECT COUNT(*) FROM tabell WHERE id = ".intval($_GET['id'])." AND viss_kolumn == 'Nej'";
$result = mysql_query($sql);
echo mysql_result($result, 0);

?>
Medlem sedan juli 2002732 inlägg
#5

Jag får det inte att fungera med koden.
Jag använder IE 6 och får nedre vänstra hörnet ett litet gult varningstriangel
med ett utropstecken. Inga felmeddelanden.

Medlem sedan juni 20008 205 inlägg
#6

Den gula varningstriangeln brukar allt som oftast vara ett felmeddelande. (Dubbel-)klicka på det och se vad det säger...

Medlem sedan juli 2002732 inlägg
#7

Felmeddelandet är följande:
Ett objekt förväntas.
Kod:0

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)