2014-10-12 18 views
0

Я не получаю правильное значение от своих переключателей на моей странице «Спасибо».Как получить определенное значение радио от PHP

Я хочу, чтобы после того, как мой пользователь закончил оплату, он переадресовал на страницу с благодарностью некоторые значения из заполненной формы для публикации там. И у меня есть архив только что с помощью этого сценария на файл form.php:

<script type="text/javascript"> 

function CookieTheFormValues() { 
var cookievalue = new Array(); 
var fid = document.getElementById(FormID); 
for (i = 0; i < fid.length; i++) 
{ 
    var n = escape(fid[i].name); 
    if(! n.length) { continue; } 
    var v = escape(fid[i].value); 
    cookievalue.push(n + '=' + v); 
} 
var exp = ""; 
if(CookieDays > 0) 
{ 
    var now = new Date(); 
    now.setTime(now.getTime() + parseInt(CookieDays * 24 * 60 * 60 * 1000)); 
    exp = '; expires=' + now.toGMTString(); 
} 
document.cookie = CookieName + '=' + cookievalue.join("&") + '; path=/' + exp; 
return true; 
} 
</script> 

И чем положить этот скрипт на странице благодарности:

<?php 
$CookieName = "PersonalizationCookie"; 
$Personal = array(); 
foreach(explode("&",@$_COOKIE[$CookieName]) as $chunk) 
{ 
    list($name,$value) = explode("=",$chunk,2); 
    $Personal[$name] = htmlspecialchars($value); 
} 
?> 

До сих пор так хорошо, что я получить все права значения из других входов, но из радиостанций я всегда получаю последнее значение класса? Это означает для, например, если у меня есть этот код:

<input type="radio" name="emotion" id="basi" value="Basic Pack" /> 

    <input type="radio" name="emotion" id="deli" value="Deluxe Pack" /> 

<input type="radio" name="emotion" id="premi" value="Premium Pack"/> 

А на странице Спасибо, я положил этот код, например

Thank you for chosing <?php echo(@$Personal["emotion"]); ?> 

я всегда это Thank you for choosing Premium Pack даже когда я проверить основную или делюкс радио почему это?

ответ

1

Ваш цикл:

for (i = 0; i < fid.length; i++) 
{ 
    var n = escape(fid[i].name); 
    if(! n.length) { continue; } 
    var v = escape(fid[i].value); 
    cookievalue.push(n + '=' + v); 
} 

будет толкать все три радиостанции в вашей ценности печенья. Каждый из них перезапишет предыдущие, потому что они имеют одно и то же имя. Таким образом, в конечном итоге вы остаетесь со значением «Premium Pack», сопоставленным с именем «эмоции». Вам нужно проверить, выбрано ли радио, прежде чем вы нажмете вал, может быть, что-то вроде:

for (i = 0; i < fid.length; i++) 
{ 
    var n = escape(fid[i].name); 
    if(! n.length) { continue; } 
    var v = escape(fid[i].value); 
    // Only push in the selected emotion radio button 
    if (n == "emotion") { 
     if (fid[i].checked == true) cookievalue.push(n + '=' + v); 
    } 
    else cookievalue.push(n + '=' + v); 
} 
+0

снова я получаю премиум-пакет: S кроме этого спасибо –

Смежные вопросы