Place for questions and answers for all newcomers and new coders. This is a free for all forum, no question is too stupid and to noob.
Xaos
Posts: 940 Joined: Wed Jan 11, 2012 4:01 am
Post
by Xaos » Sat Aug 24, 2013 12:21 pm
Alright. So i got MikeD to fix my problem of showing different forms based on a selection in jQuery, but now I'm getting undefined "climate" on line 4 of sim.php
Sim.php
Code: Select all
<?php
$predators = $_POST['predators'];
$disaster = $_POST['disaster'];
$climate = $_POST['climate'];
$food = $_POST['food'];
$disease = $_POST['disease'];
$water = $_POST['water'];
$water = $water* 6;
$food = $food* 5;
$predators = 40-($predators * 4);
$disease = 30-($disease * 3);
$disaster = 20-($disaster * 2);
if($climate == "Temperate"){
$climate = 49;
}elseif($climate == "Subtropical"){
$climate = 42;
}elseif($climate == "Tropical"){
$climate = 36;
}elseif($climate == "Semiarid"){
$climate = 24;
}elseif($climate == "Arid"){
$climate = 18;
}elseif($climate == "Polar"){
$climate = 6;
}else{die;}
$finalscore = $predators + $disaster + $climate + $food + $disease + $water;
if($finalscore >= 216){
echo "Your projected success rate lies between 90% and 100%. You have great chances.";
}elseif($finalscore >= 192){
echo "Your projected success rate lies between 80% and 90%. You have pretty good chances.";
}elseif($finalscore >= 168){
echo "Your projected success rate lies between 70% and 80%. You have have alright chances.";
}elseif($finalscore >= 144){
echo "Your projected success rate lies between 60% and 70%. You have slightly above average chances.";
}elseif($finalscore >= 120){
echo "Your projected success rate lies between 50% and 60%. You have very average chances.";
}elseif($finalscore >= 96){
echo "Your projected success rate lies between 40% and 50%. You have below average chances.";
}elseif($finalscore >= 72){
echo "Your projected success rate lies between 30% and 40%. You have relatively low chances.";
}elseif($finalscore >= 48){
echo "Your projected success rate lies between 20% and 30%. You have very low chances.";
}elseif($finalscore >= 30){
echo "Your projected success rate lies between 10% and 20%. You have almost no chance.";
}elseif($finalscore < 30){
echo "Your projected success rate lies between 0% and 10%. You have near impossible chances and face near apocolypse.";
}else{die;}
echo $finalscore;
?>
Stuff.html
Code: Select all
<?php
if (isset($_POST['submit']) {
$predators = $_POST['predators'];
$disaster = $_POST['disaster'];
$climate = $_POST['climate'];
$food = $_POST['food'];
$disease = $_POST['disease'];
$water = $_POST['water'];
$primary = $_POST['primary'];
}
?>
<html>
<div id="p1">
<form action="sim.php" method="post">
Climate<select id="climate">
<option value="Tropical">Tropical</option>
<option value="Subtropical">Subtropical</option>
<option value="Polar">Polar</option>
<option value="Arid">Arid</option>
<option value ="Semiarid">SemiArid</option>
<option value="Temperate">Temperate</option>
</select>
</form>
</div>
<style type = "text/css">
#p1{
margin-top:150px;
margin-left:670px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="JS.js"></script>
</html>
JS.js
Code: Select all
/*$(document).on('change', "select#climate", function() {
var climate = $(this).attr("option");
$("div#View_Menu").remove();
CardID = $(this).attr('data-id');
var Div = "div#"+$(this).attr('id');
$.post('Duel/create_mon_menu.php',{CardID:CardID}, function(data){
$(Div).append(data);
$('div#View_Menu').css("visibility","visible");
});
});*/
$( "select#climate" ).change(function() {
var Type = $('select#climate').find(":selected").text();
$.post('Response.php',{Type:Type}, function(data){
$('div#p1').html(data);
});
alert( data );
});
Response.php
Code: Select all
<?php
$Type = $_POST['Type'];
?>
<html>
<form action="sim.php" method="post">
Predator Severity
<select name="predators">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br><br><br>
Chance of Natural Disaster
<select name="disaster">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br><br><br>
Food Supply
<select name="food">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br> <br><br>
Risk of Deadly Disease
<select name="disease">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br> <br><br>
Access to Water
<select name="water">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br> <br><br>
Primary Consumers
<select name="primary">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select> <br> <br><br>
<input type="submit" name="submit" value="Submit" />
</form>
</html>
vitinho444
Posts: 2819 Joined: Mon Mar 21, 2011 4:54 pm
Post
by vitinho444 » Sat Aug 24, 2013 12:36 pm
I'm not sure why you're using Jquery in a form.
Although, i've found one thing in your jquery script that i think it is not being identified:
Code: Select all
$( "select#climate" ).change(function()
This will use the select tag with the id of climate. And in your select you are only saying that the name of the select is climate, not the ID. I don't think that's the same.
Other than that.. you don't seem to have a select called climate to send the POST["climate"], thus saying it is not defined.
Hope that's the problem
Jackolantern
Posts: 10891 Joined: Wed Jul 01, 2009 11:00 pm
Post
by Jackolantern » Sat Aug 24, 2013 5:48 pm
Yep, you need to actually give the SELECT tag a name="climate". ID is not picked up on the server-side.
The indelible lord of tl;dr
Xaos
Posts: 940 Joined: Wed Jan 11, 2012 4:01 am
Post
by Xaos » Sat Aug 24, 2013 10:44 pm
Oh okay. He probably meant for me to do that, but I neglected to do so. Also, I'm using jQuery because I just want climate to be shown, then depending on which climate you choose, a different form appears
vitinho444
Posts: 2819 Joined: Mon Mar 21, 2011 4:54 pm
Post
by vitinho444 » Sat Aug 24, 2013 10:49 pm
Xaos wrote: Oh okay. He probably meant for me to do that, but I neglected to do so. Also, I'm using jQuery because I just want climate to be shown, then depending on which climate you choose, a different form appears
Ahhh ok
I didn't notice that sorry.
Xaos
Posts: 940 Joined: Wed Jan 11, 2012 4:01 am
Post
by Xaos » Sun Aug 25, 2013 2:09 am
Gah. Still having issues.
Stuff.html
Code: Select all
if (isset($_POST['submit']) {
$predators = $_POST['predators'];
$disaster = $_POST['disaster'];
$climate = $_POST['climate'];
$food = $_POST['food'];
$disease = $_POST['disease'];
$water = $_POST['water'];
$primary = $_POST['primary'];
}
?>
<html>
<div id="p1">
<form action="sim.php" method="post">
Climate<select id="climate" name="cimate">
<option value="Tropical" name="Tropical">Tropical</option>
<option value="Subtropical" name="Subtropical">Subtropical</option>
<option value="Polar" name="Polar">Polar</option>
<option value="Arid" name="Arid">Arid</option>
<option value ="Semiarid" name="Semiarid">SemiArid</option>
<option value="Temperate" name="Temperate">Temperate</option>
</select>
</form>
</div>
<style type = "text/css">
#p1{
margin-top:150px;
margin-left:670px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="JS.js"></script>
</html>
JS.js
Code: Select all
/*$(document).on('change', "select#climate", function() {
var climate = $(this).attr("option");
$("div#View_Menu").remove();
CardID = $(this).attr('data-id');
var Div = "div#"+$(this).attr('id');
$.post('Duel/create_mon_menu.php',{CardID:CardID}, function(data){
$(Div).append(data);
$('div#View_Menu').css("visibility","visible");
});
});*/
$( "select#climate" ).change(function() {
var climate = $('select#climate').find(":selected").text();
$.post('Response.php',{climate:climate}, function(data){
$('div#p1').html(data);
});
alert( data );
});
Response.php
Code: Select all
<?php
$climate = $_POST['climate'];
?>
<html>
<form action="sim.php" method="post" >
Predator Severity
<select name="predators">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br><br><br>
Chance of Natural Disaster
<select name="disaster">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br><br><br>
Food Supply
<select name="food">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br> <br><br>
Risk of Deadly Disease
<select name="disease">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br> <br><br>
Access to Water
<select name="water">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select>
<br> <br><br>
Primary Consumers
<select name="primary">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
<option value="6">Six</option>
<option value="7">Seven</option>
<option value="8">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
</select> <br> <br><br>
<input type="submit" name="submit" value="Submit" />
</form>
</html>
Sim.php
Code: Select all
<?php
$predators = $_POST['predators'];
$disaster = $_POST['disaster'];
$climate = $_POST['climate'];
$food = $_POST['food'];
$disease = $_POST['disease'];
$water = $_POST['water'];
$water = $water* 6;
$food = $food* 5;
$predators = 40-($predators * 4);
$disease = 30-($disease * 3);
$disaster = 20-($disaster * 2);
if($climate == "Temperate"){
$climate = 49;
}elseif($climate == "Subtropical"){
$climate = 42;
}elseif($climate == "Tropical"){
$climate = 36;
}elseif($climate == "Semiarid"){
$climate = 24;
}elseif($climate == "Arid"){
$climate = 18;
}elseif($climate == "Polar"){
$climate = 6;
}else{die;}
$finalscore = $predators + $disaster + $climate + $food + $disease + $water;
if($finalscore >= 216){
echo "Your projected success rate lies between 90% and 100%. You have great chances.";
}elseif($finalscore >= 192){
echo "Your projected success rate lies between 80% and 90%. You have pretty good chances.";
}elseif($finalscore >= 168){
echo "Your projected success rate lies between 70% and 80%. You have have alright chances.";
}elseif($finalscore >= 144){
echo "Your projected success rate lies between 60% and 70%. You have slightly above average chances.";
}elseif($finalscore >= 120){
echo "Your projected success rate lies between 50% and 60%. You have very average chances.";
}elseif($finalscore >= 96){
echo "Your projected success rate lies between 40% and 50%. You have below average chances.";
}elseif($finalscore >= 72){
echo "Your projected success rate lies between 30% and 40%. You have relatively low chances.";
}elseif($finalscore >= 48){
echo "Your projected success rate lies between 20% and 30%. You have very low chances.";
}elseif($finalscore >= 30){
echo "Your projected success rate lies between 10% and 20%. You have almost no chance.";
}elseif($finalscore < 30){
echo "Your projected success rate lies between 0% and 10%. You have near impossible chances and face near apocolypse.";
}else{die;}
echo $finalscore;
?>
Jackolantern
Posts: 10891 Joined: Wed Jul 01, 2009 11:00 pm
Post
by Jackolantern » Sun Aug 25, 2013 2:54 am
Still the same problem? climate is undefined?
The indelible lord of tl;dr
Xaos
Posts: 940 Joined: Wed Jan 11, 2012 4:01 am
Post
by Xaos » Sun Aug 25, 2013 3:03 am
Jackolantern wrote: Still the same problem? climate is undefined?
Aye. And I thought I did everything right. It's undefined in sim.php on line 4
Jackolantern
Posts: 10891 Joined: Wed Jul 01, 2009 11:00 pm
Post
by Jackolantern » Sun Aug 25, 2013 3:20 am
You need to form your HTML better, I think. You are just lumping everything into the HTML tag. Try copy and pasting all of your code that needs to output HTML to be displayed in the browser into this template:
Code: Select all
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>The HTML5 Herald</title>
<meta name="description" content="The HTML5 Herald">
<meta name="author" content="SitePoint">
<link rel="stylesheet" href="css/styles.css?v=1.0">
</head>
<body>
<script src="js/scripts.js"></script>
</body>
</html>
Of course, if you are using jQuery's ready event, feel free to move any JS scripts back up to the head. But both a HEAD and BODY tag are required. When left out, strange things can happen, such as form data being malformed when sent to the server.
The indelible lord of tl;dr
Xaos
Posts: 940 Joined: Wed Jan 11, 2012 4:01 am
Post
by Xaos » Sun Aug 25, 2013 3:25 am
Code: Select all
<?php
if (isset($_POST['submit']) {
$predators = $_POST['predators'];
$disaster = $_POST['disaster'];
$climate = $_POST['climate'];
$food = $_POST['food'];
$disease = $_POST['disease'];
$water = $_POST['water'];
$primary = $_POST['primary'];
}
?>
<!doctype html>
<head>
<div id="p1">
<form action="sim.php" method="post">
Climate<select id="climate" name="cimate">
<option value="-" name="-">---------</option>
<option value="Tropical" name="Tropical">Tropical</option>
<option value="Subtropical" name="Subtropical">Subtropical</option>
<option value="Polar" name="Polar">Polar</option>
<option value="Arid" name="Arid">Arid</option>
<option value ="Semiarid" name="Semiarid">SemiArid</option>
<option value="Temperate" name="Temperate">Temperate</option>
</select>
</form>
</div>
<style type = "text/css">
#p1{
margin-top:150px;
margin-left:670px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="JS.js"></script>
</head>
<body>
</body>
</html>
?
I get undefined with thsi, still