Goedendag,

ik ben bezig om via een form een change door te voeren.
echter loop ik er een beetje op vast.

Dit is mijn form


<form method="post" action="">
				<td>
					<select id="selectBox" onchange="sendData(this);">
						<option value="0"></option>
						<option value="1" style="background-color: #ff0000"></option>
						<option value="2" style="background-color: #3000ff"></option>
						<option value="3" style="background-color: #36ff00"></option>
						<option value="4" style="background-color: #e400ff"></option>
						<option value="5" style="background-color: #fff000"></option>
					</select>
				</td>
<input type="hidden" name="id" value="'.$res['id'].'" />
</form>


als ik de kleur verander dan geeft var_dump post aan
array(1) { ["id"]=> string(1) "1" }

dit klopt omdat ik de eerste doe.
echter neemt hij de hidden input niet mee en dit is wel nodig.

Hoe kan ik het maken zodat ook de hidden id mee wordt gestuurd?
Dat is fijn maar het kan ook nog wat fraaier dan ik net uitgelegd had (en geen gezeur met een tellertje $i).

Ik heb dit op codepen even uitgewerkt: https://codepen.io/anon/pen/VzaLVa

Verder vraag ik me af of het niet handiger is als je dit doet:


<option value="#ff0000" style="background-color: #ff0000"></option>


Je krijgt dan direct de kleurcode terug met $_POST maar misschien wil je dit juist niet en dan moet je je hier maar niets van aantrekken ;-)
Hoi Frank,

Ik ben al aardig op de goede richting heb in iedergeval een x aantal dingen aangepast.

Nu is het volgende.


function sendData(nr) {
    var data = $("#myform"+ nr).serialize();

    // debug regeltje
    console.log(data);

    //$('#output').html('<img src="LoaderIcon.gif" />');

    jQuery.ajax({
        url: "/inc/update.php",
        data: data,
        type: "POST",
        success:function(data)
		{
			if(data) {
				$("#container").load(window.location + " #container");
			} else {
				$("#container").load(window.location + " #container");
			}
		}
    });
}


Na dat de div gerefreshed is werkt de code niet meer dan dien ik de pagina te herladen voordat ik weer wat kan doen.
Hoe kan ik dit oplossen?
Nee geen foutmelding alleen een lege regel


Als ik het aanpas met een alert dan krijg ik Array{} te zien.

Update.php


session_start();
include("config.php");
include("function.php");
include("class.User.php");
$Func = new Func($db);
if(isset($_SESSION['userData'])) {
	$User = new GUser($db,$Func, $_SESSION['userData']['oauth_uid']);
}

//echo var_dump($_POST);
if(isset($_POST['color'])) {
	$query = $db->query('UPDATE user_fleet SET train_row_color = "'.$db->real_escape_string($_POST['color']).'" WHERE id = "'.$db->real_escape_string($_POST['id']).'"');
}



[size=xsmall]Toevoeging op 01/08/2017 11:57:19:[/size]

Hmm als ik een aparte pagina maak

met dit


//session_start();
include("inc/config.php");
include("inc/function.php");
include("inc/ubb.php");
include("inc/class.User.php");
$Func = new Func($db);
//if(isset($_SESSION['userData'])) {
	$User = new GUser($db,$Func, '100886610003250557837');
//}
include_once('inc/lang.php');

$gold_swap_id = "1";

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Trainstation Swap League</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="/css/style.css" type="text/css" />
<link rel="stylesheet" href="/css/style_news.css" type="text/css" />
<!--[if IE 6]><link rel="stylesheet" href="/css/ie6-style.css" type="text/css" media="all" /><![endif]-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script> 
<script>
$( document ).ready(function() {
  
  // onchange op alle formulieren met class="myform"
  $( ".myform" ).change(function() {
    
    // verkrijg de <form> element dat bij dit select hoort en serialize form data
    var data = $(this).closest("form").serialize();
    
    // debug regeltje
    console.log(data);

    $('#output').html('<img src="LoaderIcon.gif" />');

    jQuery.ajax({
      url: "inc/update.php",
      data: data,
      type: "POST",
      success:function(data){$('#container').html(data);}
    });
    
  });
  
});

</script>


</head>
<body>
<form method="post" action="" class="myform">     <!-- VERANDER ID IN CLASS -->
  <td>
    <select class="test" name="color"> 
      <option value="0"></option>
      <option value="ff0000" style="background-color: #ff0000"></option>
      <option value="3000ff" style="background-color: #3000ff"></option>
      <option value="36ff00" style="background-color: #36ff00"></option>
      <option value="e400ff" style="background-color: #e400ff"></option>
      <option value="fff000" style="background-color: #fff000"></option>
    </select>
  </td>
  <input type="hidden" name="id" value="348" />
</form>
</body>
</html>


Dan werkt het wel.

Maar als die pagina geinclude word dan werkt het niet.

Include gebeurt zo



				if(isset($_SESSION['userData']))
				{
					if($User->HasAccess() == FALSE && $_GET['p'] != "logout")
					{
					echo '<div class="block">
							<div class="block-bot">
								<div class="head">
									<div class="head-cnt">
									<h3>Swap League</h3>
									<div class="cl">&nbsp;</div>
								</div>
							</div>
							<div class="row-articles articles">
								<div class="cl">&nbsp;</div>
								<center><font size="6">To enter this site you need to ask permission</font></center>
							 </div>
						</div>
					</div>';
					}
					else
					{
						if(isset($_GET['p']) == "" || $_GET['p'] == "home" || $_GET['p'] == "1")
						{
							if(!file_exists("./pages/home.php"))
							{
								include("./pages/404.php");	
							}
							else
							{
								include("./pages/home.php");	
							}
						}
						else
						{
							$file = './pages/' . $_GET['p'] . '.php';
							if(!file_exists($file))
							{
								$file = './pages/404.php';
							}
							include($file);	
						}
					}
				}
				else
				{
					echo '<div class="block">
							<div class="block-bot">
								<div class="head">
									<div class="head-cnt">
									<h3>SwapLeague</h3>
									<div class="cl">&nbsp;</div>
								</div>
							</div>
							<div class="row-articles articles">
								<div class="cl">&nbsp;</div>
								<center><font size="6">To enter this site you need to login or you need to ask permission</font></center>
							 </div>
						</div>
					</div>';
				}
				?>


.htaccess


RewriteEngine On

RewriteBase /



# Bestaande bestanden of mappen uitsluiten

RewriteCond %{REQUEST_FILENAME} -f [NC,OR]

RewriteCond %{REQUEST_FILENAME} -d [NC]


RewriteRule ^(.*?)$ $1 [L]


# Alles naar één parameter

RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)$ index.php?p=$1&a=$2&r=$3&t=$4&s=$5&q=$6&z=$7 [NC,L]

RewriteRule ^(.*)/(.*)/(.*)/(.*)$ index.php?p=$1&a=$2&r=$3&t=$4&s=$5&q=$6 [NC,L]

RewriteRule ^(.*)/(.*)/(.*)/(.*)$ index.php?p=$1&a=$2&r=$3&t=$4&s=$5 [NC,L]

RewriteRule ^(.*)/(.*)/(.*)/(.*)$ index.php?p=$1&a=$2&r=$3&t=$4 [NC,L]

RewriteRule ^(.*)/(.*)/(.*)$ index.php?p=$1&a=$2&r=$3 [NC,L]

RewriteRule ^(.*)/(.*)$ index.php?p=$1&a=$2 [NC,L]

RewriteRule ^(.*?)$ index.php?p=$1 [QSA,L]




SEO

//SEO SCRIPT//
if(!empty($_GET) && isset($_GET['p'])) {
    $aParameters = explode("/", $_GET['p']);    
    $iTeller = 0;
    foreach($aParameters as $sParameter) {
        if(preg_match("_=_", $sParameter)) {
            list($key, $value) = explode("=", $sParameter);    
            $_GET[$key] = $value;
        } else {
            if($iTeller > 0) {
                $_GET['param'.$iTeller] = $sParameter;
            } else {
                $_GET['p'] = $sParameter;
            }
            $iTeller++;
        }
    }
}
Probleem opgelost.

Html form was niet in de juiste contex waardoor die het niet deed met de rest van de code.

Reageren