2013-09-11 3 views
1

Я хочу сохранить значение ajax 'when selected', сохраненное в переменной php.Как сохранить значение ajax в переменной php?

<select name="client_name" onchange="ajaxReq('product_name', this.value);"> 
    <option>- - -</option> 
    <option value="SANY">SANY</option> 
    <option value="MBFC">MBFC</option> 
</select> 
<span id="slo_product_name"> </span> 
<span id="slo_release_no"> </span> 
<script type="text/javascript"> 
var ar_cols = ["client_name","product_name","release_no",null]; var preid = "slo_"; 
</script> 

Я пробовал это, но не удалось.

$releasenu=$_POST['release_no']; 

Как я должен хранить значение АЯКС из release_no в переменной PHP? Есть ли другой путь?

function ajaxReq(col, wval) { 
    removeLists(col);   
    if(wval!='- - -' && wval!='') { 
     var request = get_XmlHttp(); 
     var php_file = 'select_list.php'; 
     var data_send = 'col='+col+'&wval='+wval; 
     request.open("POST", php_file, true); 
     document.getElementById(preid+col).innerHTML = 'Loadding...'; 
     request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     request.send(data_send); 
     request.onreadystatechange = function() { 
    if (request.readyState==4) { 
     document.getElementById(preid+col).innerHTML = request.responseText; } 
      } } } 
+2

где ваша функция ajax – Dinesh

+1

Можно ли увидеть функцию 'ajaxReq' –

+0

' PHP script' работает на 'стороне сервера', а' Ajax' работает на стороне клиента, поэтому вы не можете присвоить значение 'ajax' переменной' php ', да, вы можете' Manipulate DOM' после 'Ajax call'. –

ответ

1

В соответствии с вашим кодом, вы должны использовать это в вашем select_list.php сценария:

$col = $_POST['col']; 
$wval = $_POST['wval']; 

// now you can use those variables to save to DB, or get some data out of DB 

Я предполагаю, что вы хотите иметь каскадные <select> элементы, вы должны изменить ajaxReq() функцию:

function ajaxReq(col, wval) { 
    // first remove all selects that are after this one 
    var remove = false; 
    var next = null; // we also need to trap next select so we can fill it 
    for (i in ar_cols) { 
     if (ar_cols[i] == col) { 
      remove = true; // from now on, remove lists 
     } else if (remove) { // if ok to remove 
      if (!next) { 
       next = ar_cols[i]; // now we found next column to fill 
      } 
      if (ar_cols[i]) { // remove only non null 
       removeLists(ar_cols[i]); 
      } 
     } 
    }  
    if(wval!='- - -' && wval!='' && next) { // also if there is column after to fill 
     var request = get_XmlHttp(); 
     var php_file = 'select_list.php'; 
     var data_send = 'col='+col+'&wval='+wval+'&next='+next; // also add next param 
     request.open("POST", php_file, true); 
     document.getElementById(preid+col).innerHTML = 'Loadding...'; 
     request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     request.send(data_send); 
     request.onreadystatechange = function() { 
      if (request.readyState==4) { 
       // we fill next select 
       document.getElementById(preid+next).innerHTML = request.responseText; 
      } 
     } 
    } 
} 

Ваш select_list.php должен выглядеть примерно так:

$col = $_POST['col']; // this is just a filter for values in next <select> 
$wval = $_POST['wval']; 
$next = $_POST['next']; // we need to get this param or we cannot setup next <select> 

// using $col and $wval variables get values from DB 

echo '<select name="' . $next . '" onchange="ajaxReq(\'' . $next . '\', this.value);">'; 
foreach ($data as $row) { 
    echo '<option ...>...</option>'; // fix this to work for you 
} 
echo '</select>'; 

// Код изменен из-за ошибки нашли
запрос Ajax должен содержать еще один параметр (next столбца), так как возвращаемый <select> должен иметь имя и OnChange события, подготовленное для следующего, а не в настоящее время изменилось.
Проверьте код еще раз.

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