Beste,

Ik probeer 3 select menu's in de checkout-pagina van m'n webshop te plaatsen. Ze staan er maar ze werken niet en ik heb geen idee wat ik verkeerd doe. Kan iemand me helpen? De ingevoerde gegevens worden niet opgepakt en verzonden waardoor ze dus ook niet verschijnen op m'n bevestigings-pagina.

Dit staat er nu:
	
	$echo.='<fieldset class="eshop fld1"><legend id="mainlegend">'. __('Please Enter Your Details','eshop').'</legend>
	<fieldset class="eshop fld2">';
	if('no' == $eshopoptions['downloads_only']){
		$echo .='<legend>'.__('Mailing Address','eshop').'</legend>';
	}else{
		$echo .='<legend>'.__('Contact Details','eshop').'</legend>';
	}
	$echo .='<span class="firstname"><label for="first_name">'.__('First Name','eshop').eshop_checkreqd($reqdarray,'first_name').'</label>
	  <input class="med" type="text" name="first_name" value="'.$first_name.'" id="first_name" maxlength="40" size="40" /><br /></span>
	 <span class="lastname"><label for="last_name">'.__('Last Name','eshop').eshop_checkreqd($reqdarray,'last_name').'</label>
	  <input class="med" type="text" name="last_name" value="'.$last_name.'" id="last_name" maxlength="40" size="40" /><br /></span>';
	if('no' == $eshopoptions['downloads_only']){
	$echo .='
		 ';
	}
	$echo .='<span class="email"><label for="email">'.__('Email','eshop').eshop_checkreqd($reqdarray,'email').'</label>
	  <input class="med" type="text" name="email" value="'.$email.'" id="email" maxlength="100" size="40" /><br /></span>';
	if('no' == $eshopoptions['downloads_only']){
		$echo .='<span class="phone"><label for="phone">'.__('Phone','eshop').eshop_checkreqd($reqdarray,'phone').'</label>
		  <input class="med" type="text" name="phone" value="'.$phone.'" id="phone" maxlength="30" size="30" /><br /></span>
		 <span class="address1"><label for="address1">'.__('Address','eshop').eshop_checkreqd($reqdarray,'address').'</label>
		  <input class="med" type="text" name="address1" id="address1" value="'.$address1.'" maxlength="40" size="40" /><br /></span>
		 <span class="city"><label for="city">'.__('City or town','eshop').eshop_checkreqd($reqdarray,'city').'</label>
		  <input class="med" type="text" name="city" value="'.$city.'" id="city" maxlength="40" size="40" /><br /></span>'."\n";

		// state list from db
		$table=$wpdb->prefix.'eshop_states';
		$getstate=$eshopoptions['shipping_state'];
		if($eshopoptions['show_allstates'] != '1'){
			$stateList=$wpdb->get_results("SELECT id,code,stateName FROM $table WHERE list='$getstate' ORDER BY stateName",ARRAY_A);
		}else{
			$stateList=$wpdb->get_results("SELECT id,code,stateName,list FROM $table ORDER BY list,stateName",ARRAY_A);
		}
		
		if(sizeof($stateList)>0){
			$echo .='';
			$echo .='';
			$echo .= apply_filters('',''.__('','eshop').'</option>');
			foreach($stateList as $code => $value){
				if(isset($value[''])) $li=$value[''];
				else $li='1';
				$eshopstatelist[$li][$value['id']]=array($value['code'],$value['']);
			}
			$tablec=$wpdb->prefix.'eshop_countries';
			foreach($eshopstatelist as $egroup =>$value){
				$eshopcname=$wpdb->get_var("SELECT country FROM $tablec where code='$egroup' limit 1");
				$echo .='<optgroup label="'.$eshopcname.'">'."\n";

				foreach($value as $code =>$stateName){
					//$stateName=esc_attr($stateName);
					if (isset($state) && ($state == $stateName['0'] || $state == $code)){
						$echo.= '<option value="'.$code.'" selected="selected">'.$stateName['1']."</option>\n";
					}else{
						$echo.='<option value="'.$code.'">'.$stateName['1']."</option>\n";
					}
				}
				$echo .="</optgroup>\n";
			}
			$echo.= "</select><br /></span>\n";
		}else{
			$echo .='<input type="hidden" name="state" value="" />';
		}
		$echo .= '';
		$echo .= '
		 <span class="zip"><label for="zip">'.__('Zip/Post code','eshop').eshop_checkreqd($reqdarray,'zip').'</label>
		  <input class="short" type="text" name="zip" value="'.$zip.'" id="zip" maxlength="20" size="20" /><br /></span>
		 <span class="country"><label for="country">'.__('Verzending','eshop').eshop_checkreqd($reqdarray,'country').'</label>
		  <select class="med pointer" name="country" id="country">
		';
		// country list from db
		$tablec=$wpdb->prefix.'eshop_countries';
		$List=$wpdb->get_results("SELECT code,country FROM $tablec GROUP BY list,country",ARRAY_A);
		foreach($List as $key=>$value){
			$k=$value['code'];
			$v=$value['country'];
			$countryList[$k]=$v;
		}
		if(!isset($countryList)){
			wp_die(__('Error, please contact site owner.','eshop'));
		}
		$echo .='<option value="" selected="selected">'.__('','eshop').'</option>';
		foreach($countryList as $code => $label){
			$label=htmlspecialchars($label);
			if (isset($country) && $country == $code){
				$echo.= "<option value=\"$code\" selected=\"selected\">$label</option>\n";
			}else{
				$echo.="<option value=\"$code\">$label</option>";
			}
		}
		$echo.= "</select></span>";
	}
	$echo .="</fieldset>";
	
	$echo = apply_filters('eshopaddtocheckout',$echo);

	if('yes' != $eshopoptions['hide_addinfo']){
		$echo .= '<fieldset class="eshop fld3">
		<legend>'.__('De tekst voor uw kaart:','eshop').'</legend>
		 <span class="eshopreference"><label for="reference">'.__('Naam van de gelukkige(n)','eshop').eshop_checkreqd($reqdarray,'ref').'</label>
		  <input type="text" class="med" name="reference" value="'.$reference.'" id="reference" size="80" /><br /></span>

<label for="type">'.__('Lettertype','eshop').eshop_checkreqd($reqdarray,'type').' </label>

<select name="lettertype">
<option value="">- Kies uw lettertype -</option>
<option value="optie1">Helvetica</option>
<option value="optie2">Amazone</option>
<option value="optie3">Arctic</option>
<option value="optie4">Bahamas light</option>
<option value="optie5">Comic Sans</option>
<option value="optie6">Garamond</option>
<option value="optie7">LT Sallway</option>
<option value="optie8">Optimum</option>
<option value="optie9">President</option>
<option value="optie10">Souvenir light</option>
<option value="optie11">Shelley Allegro</option>
</select> 

<span class="eshopreference"><label for="reference">'.__('Kleur','eshop').eshop_checkreqd($reqdarray,'ref').' 
<select name="kleur">
<option value="">- Kies uw tekstkleur -</option>
<option value="optie1">cyaan</option>
<option value="optie2">magenta</option>
<option value="optie3">zwart</option>
<option value="optie4">warm red</option>
<option value="optie5">green</option>
<option value="optie6">oranje</option>
<option value="optie7"PMS 1405</option>
<option value="optie8">PMS 1785</option>
<option value="optie9">PMS 311</option>
<option value="optie10">PMS 2395</option>
<option value="optie11">PMS 2935</option>
<option value="optie11">PMS 3298</option>
</select> </label>
</span>

<span class="eshopreference"><label for="reference">'.__('uitlijning','eshop').eshop_checkreqd($reqdarray,'ref').' 
<select name="uitlijning">
<option value="">- Kies de tekstpositie -</option>
<option value="optie1">Linkslijnend</option>
<option value="optie2">rechtslijnend</option>
<option value="optie3">gecentreerd</option>
</select> </label>
</span>

		 <label for="eshop-comments">'.__('Geef hier uw tekst in:','eshop').eshop_checkreqd($reqdarray,'comments').'</label>
		  <textarea class="textbox" name="comments" id="eshop-comments" cols="60" rows="5">'.$comments.'</textarea>';


		 $echo = apply_filters('eshopaddtoadditionalinformation',$echo);
		 $echo .= "</fieldset>\n";
	}
	if('no' == $eshopoptions['downloads_only']){
		if('yes' != $eshopoptions['hide_shipping']){
			$echo .='<fieldset class="eshop fld4">
			<legend>'.__('Shipping address (if different)','eshop').'</legend>
			 <span class="ship_name"><label for="ship_name">'.__('Name','eshop').'</label>
			  <input class="med" type="text" name="ship_name" id="ship_name" value="'.stripslashes(esc_attr($ship_name)).'" maxlength="40" size="40" /><br /></span>
			 			 <span class="ship_phone"><label for="ship_phone">'.__('Phone','eshop').'</label>
			  <input class="med" type="text" name="ship_phone" value="'.$ship_phone.'" id="ship_phone" maxlength="30" size="30" /><br /></span>
			 <span class="ship_address"><label for="ship_address">'.__('Address','eshop').'</label>
			  <input class="med" type="text" name="ship_address" id="ship_address" value="'.stripslashes(esc_attr($ship_address)).'" maxlength="40" size="40" /><br /></span>
			 <span class="ship_city"><label for="ship_city">'.__('City or town','eshop').'</label>
			  <input class="med" type="text" name="ship_city" id="ship_city" value="'.stripslashes(esc_attr($ship_city)).'" maxlength="40" size="40" /><br /></span>'."\n";
			if(isset($stateList) && sizeof($stateList)>0){
				$echo .='';
			}else{
				$echo .='<input type="hidden" name="ship_state" value="" />';
			}
			$echo .= '';

			$echo .='<span class="shippostcode"><label for="ship_postcode">'.__('Zip/Post Code','eshop').'</label>
			  <input class="short" type="text" name="ship_postcode" id="ship_postcode" value="'.$ship_postcode.'" maxlength="20" size="20" />
			  <br /></span>
			<span class="shipcountry"><label for="shipcountry">'.__('Country','eshop').'</label>
			  <select class="med pointer" name="ship_country" id="shipcountry">
			';
			$echo .='<option value="" selected="selected">'.__('Select your Country','eshop').'</option>';
			foreach($countryList as $code => $label){
				$label=htmlspecialchars($label);
				if (isset($ship_country) && $ship_country == $code){
					$echo.= "<option value=\"$code\" selected=\"selected\">$label</option>\n";
				}else{
					$echo.="<option value=\"$code\">$label</option>";
				}
			}
			$echo.= "</select></span>";
			$echo .='</fieldset>';
		}
	}



Het gaat dus om de menu's waarbij je lettertype, kleur en uitlijning van de tekst aan kunt geven.
ik heb er dit van gemaakt maar dat geeft nog steeds geen resultaat op m'n bevestigingspagina:
$stype='';
		if(isset($_POST['eshop_shiptype'])) $stype=$_POST['eshop_shiptype'];
		if(isset($_POST['lettertype'])) $lettertype=$_POST['lettertype']; 
		if(isset($_POST['kleur'])) $kleur=$_POST['kleur']; 
		if(isset($_POST['uitlijning'])) $uitlijning=$_POST['uitlijning']; 


En ja, dat gaat allemaal in een mysql-database, er zit een uitgebreid admin-panel achter.
Nu kunnen we de variabelen gaan printen op je bevestigingspagina, dus nu moet je het stuk zoeken waart alles in beeld gezet wordt.



echo $lettertype;


Als het in een database gezet moet worden, bestaand die velden wel in de database?

Doe voor de zekerheid ook maar ff het hele script post zoals Reshad dat zei dan kan ik meekijken

oke, het licht begint hier aan te gaan...
Ik had de knopjes al, nu hebben we ervoor gezorgd dat die ook nog iets gaan doen, en met deze echo maken we ze zichtbaar op de bevestigings-pagina.

Nee deze velden bestaan nog niet in de database en komen ook niet voor in het admin-panel.
Precies.

Ok dan is het nu dus zaak dat de velden in de juiste tabel in de database komen te staan.

Kun je iets vinden als dit?


$query = "INSERT INTO ...................";


Dan weten we namelijk welke tabel we uit moeten gaan breiden.
hier de hele pagina...


[size=xsmall]Toevoeging op 08/06/2012 12:32:22:[/size]

ik heb dit ingevoerd maar nog geen resultaat:
$echoit.= "</ul>\n";
				//
				$temp=apply_filters('eshopconfcheckout',$_POST);
				if(!is_array($temp)) $echoit .= $temp;
				//
				if(!isset($_POST['reference'])) $_POST['reference']='';
				if(!isset($_POST['comments'])) $_POST['comments']='';
				if( (trim($_POST['reference'])!='') && trim($_POST['comments'])==''){
					$echoit.= "<div class=\"eshop fld3\"><h4>".__('Additional information','eshop')."</h4>\n<ul class=\"eshop confirmref\">\n";
					$echoit.= '<li><span class="items">'.__('Reference or <abbr title="Purchase Order number">PO</abbr>','eshop').'</span> '.$_POST['reference'].'</li>'."\n";
					$echoit.= '</ul></div>'."\n";
				}
				if( (trim($_POST['reference'])=='') && trim($_POST['comments'])!=''){
					$echoit.= "<div class=\"eshop fld3\"><h4>".__('Additional information','eshop')."</h4>\n<ul class=\"eshop confirmref\">\n";
					$echoit.= '<li><span class="items">'.__('lettertype:','eshop').'</span> '.$_POST['lettertype'].'</li>'."\n";
					$echoit.= '<li><span class="items">'.__('kleur:','eshop').'</span> '.$_POST['kleur'].'</li>'."\n";
					$echoit.= '<li><span class="items">'.__('uitlijning:','eshop').'</span> '.$_POST['uitlijning'].'</li>'."\n";
					$echoit.= '<li><span class="items">'.__('Comments or instructions:','eshop').'</span> '.$_POST['comments'].'</li>'."\n";
					$echoit.= '</ul></div>'."\n";
				}
				if( (trim($_POST['reference'])!='') && trim($_POST['comments'])!=''){
					$echoit.= "<div class=\"eshop fld3\"><h4>".__('Additional information','eshop')."</h4>\n<ul class=\"eshop confirmref\">\n";
					$echoit.= '<li><span class="items">'.__('Reference or PO:','eshop').'</span> '.$_POST['reference'].'</li>'."\n";
					$echoit.= '<li><span class="items">'.__('Comments or instructions:','eshop').'</span> '.$_POST['comments'].'</li>'."\n";
					$echoit.= '</ul></div>'."\n";
				}
				if('no' == $eshopoptions['downloads_only']){
					if('yes' != $eshopoptions['hide_shipping']){
						if($_POST['ship_name']!='' || $_POST['ship_address']!='' || $_POST['ship_city']!='' || $_POST['ship_postcode']!=''){
							$echoit.= "<div class=\"eshop fld4\"><h4>".__('Shipping Address','eshop')."</h4>\n<ul class=\"eshop confirmship\">\n";
							$echoit.= "<li><span class=\"items\">".__('Full name:','eshop')."</span> ".$_POST['ship_name']."</li>\n";
							$echoit.= "<li class=\"ship_company\"><span class=\"items\">".__('Company:','eshop')."</span> ".$_POST['ship_company']."</li>\n";
							$echoit.= "<li><span class=\"items\">".__('Phone:','eshop')."</span> ".$_POST['ship_phone']."</li>\n";
							$echoit.= "<li><span class=\"items\">".__('Address:','eshop')."</span> ".$_POST['ship_address']."</li>\n";
							$echoit.= "<li><span class=\"items\">".__('City or town:','eshop')."</span> ".$_POST['ship_city']."</li>\n";
							$qcode=$wpdb->escape($_POST['ship_state']);
							$qstate = $wpdb->get_var("SELECT stateName FROM $stable WHERE id='$qcode' limit 1");
							if($_POST['ship_altstate']!='')
								$echoit.= "<li class=\"ship_state\"><span class=\"items\">".__('State/County/Province:','eshop')."</span> ".$_POST['ship_altstate']."</li>\n";
							elseif($qstate!='')
								$echoit.= "<li class=\"ship_state\"><span class=\"items\">".__('State/County/Province:','eshop')."</span> ".$qstate."</li>\n";

							$echoit.= "<li><span class=\"items\">".__('Zip/Post code:','eshop')."</span> ".$_POST['ship_postcode']."</li>\n";
							$qccode=$wpdb->escape($_POST['ship_country']);
							$qcountry = $wpdb->get_var("SELECT country FROM $ctable WHERE code='$qccode' limit 1");
							$echoit.= "<li class=\"shipcountry\"><span class=\"items\">".__('Country:','eshop')."</span> ".$qcountry."</li>\n";
							$echoit.= "</ul></div>\n";
						}
					}
				}

volgens mij is het te kort door de bocht. Moet ik misschien voor elke selectiemogelijkheid deze aanmaken:
$echoit.= "<div class=\"eshop fld3\">
Op welke regel heb je dat gedaan?

Je moet namelijk zijn in het stuk na regel 820


$echoit.= "<div class=\"hr\"></div><div class=\"eshopcheckoutconf\"><h3>".__('<span class="noprint">Please Confirm </span>Your Details','eshop').'</h3>';
// create a custom id, and shove details in database


Tevens wordt het in jou geval nu alleen getoond als referentie en commentaar gevuld zijn


 if( (trim($_POST['reference'])=='') && trim($_POST['comments'])!=''){
staat op regel 871 t/m 873
kan ik het alleen hiermee oplossen?
echo $lettertype; 
echo $kleur; 
echo $uitlijning;

en zo ja waar moet ik het plaatsen?
En als je het dan als volgt doet?


//if( (trim($_POST['reference'])=='') && trim($_POST['comments'])!=''){
$echoit.= "<div class=\"eshop fld3\"><h4>".__('Additional information','eshop')."</h4>\n<ul class=\"eshop confirmref\">\n";
$echoit.= '<li><span class="items">'.__('lettertype:','eshop').'</span> '.$_POST['lettertype'].'</li>'."\n";
$echoit.= '<li><span class="items">'.__('kleur:','eshop').'</span> '.$_POST['kleur'].'</li>'."\n";
$echoit.= '<li><span class="items">'.__('uitlijning:','eshop').'</span> '.$_POST['uitlijning'].'</li>'."\n";
$echoit.= '<li><span class="items">'.__('Comments or instructions:','eshop').'</span> '.$_POST['comments'].'</li>'."\n";
$echoit.= '</ul></div>'."\n";
//}


Op dezelfde regels laten staan
jawel, jawel ze staan op m'n bevestigingspagina, ik moest even zoeken waar ik het in moest plakken maar het werkt!
Nu moet hij nog in de bevestigingsmails naar klant en drukker terecht komen, dat is vooral belangrijk, nog belangrijker dan in de database.
Wat in dit geval ook belangrijk is, is dat je de keuzes op gaat slaan in de sessie.

Dit gebeurd hier

//add to a session to store address:
$_SESSION['addy'.$blog_id]['first_name']=$_POST['first_name'];


Zonder extra code was dit regel 914, dus dat zal nu wel regel 922 zijn.

Dit moet je daaraan toevoegen

$_SESSION['lettertype'] = $_POST['lettertype']
etc. etc.


Dit zorgt ervoor dat je de gegevens ook op andere pagina's gebruiken, dus ook in bevestigingmails, want dat deel zie niet in het script terugkomen.

Reageren