Проблем с PHP/JavaScript игричка

Moreny

Registered
Здравейте,
Колеги имам нужда от малк помощ с една малка игра.
Играта представлява две инпут полета където потребителя трябва да въведе две имена и като натисне бутона се показват рандом проценти.

Това което се опитвам да направя, но не ми се получава е, на мястото на двете input полета да сложа 2 падащи селект менюта със зодии:

<select>
<option selected="" value="0">Избери</option>
<option value="1">Овен</option>
<option value="2">Телец</option>
<option value="3">Близнаци</option>
<option value="4">Рак</option>
<option value="5">Лъв</option>
<option value="6">Дева</option>
<option value="7">Везни</option>
<option value="8">Скорпион</option>
<option value="9">Стрелец</option>
<option value="10">Козирог</option>
<option value="11">Водолей</option>
<option value="12">Риби</option>
</select>

Идеята е потребителя да избере 2 зодии и да "уж" да види колко процента имат съвместимост :)

ето и кода:

index
<html>
<head>
<title>Test</title>
</head>
<body>
<link rel="stylesheet" type="text/css" href="css/style.css" media="all" />
<script type="text/javascript" src="js/global.js"></script>
</head>
<body>
<div align="center" id="main">
<a href="test.php"><h1>test </h1></a>
<form name="test" action="#">
<table border="0">
<tr /><td><b>Person 1:</b>
<input type="text" size="20" class="name" name="p1" value="test" onClick="this.value=''"></td><td>
<div id="targetDiv" style="padding-left:110px; padding-top:0px">
<font size="7" color="#000">0%
</font>
</div></td><td><b>Person 2:</b>
<input type="text" size="20" class="name" name="p2" value="test" onClick="this.value=''"><br /></td>
</tr>
</table>
<input type="button" onClick="updateDiv(p1.value, p2.value)" value="button" />
</form>
</div>
</body>
</html>

PHP Код

<?php
error_reporting(0);
$lovename = strtolower(preg_replace("/ /","",strip_tags(trim($_POST['p1'].$_POST['p2']))));
$alp = count_chars($lovename);

for($i=97;$i<=122;$i++){
if($alp[$i]!=false){
$anz = strlen($alp[$i]);
if($anz<2){ $calc[] = $alp[$i]; }
else{ for($a=0;$a<$anz;$a++){ $calc[] = substr($alp[$i],$a,1); } }
}
}

while (($anzletter = count($calc))>2) {
$lettermitte = ceil($anzletter/2);
for($i=0;$i<$lettermitte;$i++){
$sum = array_shift($calc)+array_shift($calc);
$anz = strlen($sum);
if($anz<2){ $calcmore[] = $sum; }
else{ for($a=0;$a<$anz;$a++){ $calcmore[] = substr($sum,$a,1); } }
}
$anzc = count($calcmore);
for($b=0;$b<$anzc;$b++){ $calc[] = $calcmore[$b]; }
array_splice($calcmore,0);
}

echo $calc[0].$calc[1];
?>


JavaScript

var request = false;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}

if (!request)
alert("Error initializing XMLHttpRequest!");

function updateDiv(person1, person2){
var url = "calc.php";
var params = "p1=" + person1 + "&p2=" + person2;
request.open("POST", url, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.setRequestHeader("Content-length", params.length);
request.setRequestHeader("Connection", "close");
request.onreadystatechange = function() {
if(request.readyState == 4 && request.status == 200) {
var response = request.responseText;
document.getElementById('targetDiv').innerHTML = response + "% ";
}
}

request.send(params);
}
 
Колега, този скрипт няма да стане, тъй като всъщност той брои колко са дълги имената, на базата на които изкарва стойност в проценти. Разбира се, ще проработи ако във value на зодиите изпишеш от колко символа са съставени имената им, но в крайна сметка няма да работи така, както трябва реално, защото ще изкарва на всички хора приблизително еднакви стойности... :) Според мен трябва да се помисли за нова логика на изчисляване!
Поздрави!
 
Мда и аз така предполагах че работи, но мислех че по лесно ще стане да се промени и да работи по същия начин.

Ще се радвам, ако някой даде скрип който да работи със зодии по същия или подобен начин.

Поздрави!
 
Най-лесно е на всяка зодия да сложиш value някаква числово стойност и после само си правиш проверките.... :)
 

Back
Горе