Въпрос за форма

  • Автор Автор rix
  • Начална дата Начална дата

rix

Registered
Чудих се дали да пусна тука темата или в раздела php и в крайна сметка реших тук
Въпроса ми е следния:
Как да взема променлива за избрания value в кода:

<BR><BR><div id="vote">
<form name='Rate_Form' method='post' action='rateprocessi.php?vote=<?php echo "=$idi"; ?>'>
<select size='1' name='ratinga'>
<option selected value='5'>5 - Супер яко</option>
<option value='4'>4 - Много добро</option>
<option value='3'>3 - Добро</option>
<option value='2'>2 - Средно</option>
<option value='1'>1 - Лошо</option>
<option value='0'>0 - Много зле</option>
</select>
<input type='button' value='Оцени' onclick="vote('<?php echo "=$idi"; ?>')">
</form>
</div>

така че примерно ако $value=value(една от петте опции която е избрана)
долу в onclick="vote('<?php echo "=$idi"; ?>')"> да го направя примерно
onclick="vote('<?php echo "=$idi&glas=$value"; ?>')">
където $idi ми е променлива за идент на играта, а както казах $value е гласът който е избран от опциите 0-5. Та как да я взема тази променлива $value
Мерси предварително!
 
<BR><BR><div id="vote">
<form name='Rate_Form' method='post' action='rateprocessi.php?vote=<?php echo "=$idi"; ?>'>
<select size='1' name='ratinga'>
<option selected value='5'>5 - Супер яко</option>
<option value='4'>4 - Много добро</option>
<option value='3'>3 - Добро</option>
<option value='2'>2 - Средно</option>
<option value='1'>1 - Лошо</option>
<option value='0'>0 - Много зле</option>
</select>
<input type='submit' value='Оцени' name='submit'>
</form>
</div>

rateprocessi.php
Код:
<?php
if(isset($_POST['submit'])){
$ratinga = $_POST['ratinga'];
if(!is_numeric($ratinga)){
die("Asdf br0");
}
?>
<script language="JavaScript">
vote('<?php echo "=$idi&glas=$ratinga"; ?>')
</script>
 
С type=submit не става, защото гласуването е с ajax и идеята ми е като някой гласува страницата без да се презарежда да му изписва "успешно гласуване" и да записва гласа в бд. Мисля, че трябва да остане type=button, ето и как изглежда целия ми код за този скрипт:

Код:
<script>
function vote(id){   
   xmlHttp=GetXmlHttpObject();
   
   if (xmlHttp==null) {
      alert ("Your browser does not support AJAX!");
      return;
   }
   var url="rateprocessi.php";
   url=url+"?vote="+id;
   url=url+"&sid="+Math.random();
   xmlHttp.onreadystatechange=stateChanged;
   xmlHttp.open("GET",url,true);
   xmlHttp.send(null);
}
function GetXmlHttpObject(){
   var xmlHttp=null;
   try
     {
     xmlHttp=new XMLHttpRequest();
     }
   catch (e)     {
     try
       {
       xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
       }
     catch (e)
       {
       xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
       }
    }
   return xmlHttp;
}

function stateChanged(){
   if (xmlHttp.readyState==4){
      document.getElementById("vote").innerHTML=xmlHttp.responseText;
   }
}
</script>
<BR>Гласове:   <?=$votes?> гласа
<BR><BR><div id="vote">
<form name='Rate_Form' method='post' action='rateprocessi.php?vote=<?php echo "$idi"; ?>'>
<select size='1' name='ratinga'>
<option selected value='5'>5 - Супер яко</option>
<option value='4'>4 - Много добро</option>
<option value='3'>3 - Добро</option>
<option value='2'>2 - Средно</option>
<option value='1'>1 - Лошо</option>
<option value='0'>0 - Много зле</option>
</select>
<input type='button' value='Оцени' onclick="vote('<?php echo "=$idi"; ?>')">
</form>
</div>

rateprocessi.php

Код:
<?php 
$idi2 = $_GET['vote'];
$ratinga   = addslashes(strip_tags($_POST['ratinga']));
$connection = mysql_connect(localhost, rix, pass); 
$SelectedDB = mysql_select_db(rix_db); 

$query = mysql_query ("SELECT `rating`, `num_votes` FROM `ekshan` WHERE id=$idi2") or die (mysql_error()); 


while(list($rating_art, $num_votes_art)= mysql_fetch_array($query)) 
{ 

$new_count = ($num_votes_art + 1); 

$dl_rating2 = ($rating_art * $num_votes_art); 

$new_rating = (($ratinga + $dl_rating2) / ($new_count)); 

$new_rating2 = number_format($new_rating, 2, '.', ''); 


$update_rating = mysql_query("UPDATE `ekshan` SET 
rating=$new_rating2, num_votes=$new_count WHERE id=$idi2"); 

echo "Вие гласувахте с $ratinga ";

}


?>
Дефакто променливата $ratinga не се взима успешно, освен когато във формата type=submit а не type=button, но пък когато е събмит гласуването не става без презареждане(презарежда се към страницата rateprocoessi.php, а аз искам да става без презареждане) Мисля, че може да стане ако се вземе променлива за самата опция на гласа  и после да се вземе с get в rateprocessi.php както е с идент-а на играта.

Все пак мерси за труда, дори да не успееш да ми помогнеш ще ти дам точка, заради труда!
 

Back
Горе