Передача данных из php
Доброго времени суток уважаемые форумчане =) Давеча столкнулся с такой проблемой, не могу корректно связать вопрос с ответами на него.
Есть .php скрипт вывода результатов голосования: <?php /*Выводим результаты голосования для тех кто не голосовал по ссылке*/ $pool1_abspath = dirname(__FILE__); $pool1_abspath_1 = str_replace('wp-content/plugins/pool-one-wp-plugin', '', $pool1_abspath); $pool1_abspath_1 = str_replace('wp-content\plugins\pool-one-wp-plugin', '', $pool1_abspath_1); require_once($pool1_abspath_1 .'wp-config.php'); $ans = @$_GET["ans"]; $res = ""; global $wpdb, $wp_version; $pool1_que_css = "<div class='pool-question'>##QUESTION##</div>"; $pool1_ans_css = "<div class='pool-answer'>##ANSWER## <span class='pool-result'>(##RES##)</span></div>"; $sSql = "select poolq_id, poolq_question from ". POOLONETABLEQ ." where 1=1"; $sSql = $sSql . " limit 0,1;"; $pool_question = $wpdb->get_results($sSql); $pool1_que_css = "<div class='pool-question'>##QUESTION##</div>"; $pool1_ans_css = "<div class='pool-answer'>##ANSWER## <span class='pool-result'>(##RES##)</span></div>"; $res = '<div id="pool1">'; foreach ( $pool_question as $question ) { $poolq_id = $question->poolq_id; $poolq_question = stripslashes($question->poolq_question); $poolq_question = str_replace( "##QUESTION##" , $poolq_question, $pool1_que_css); $res = $res . $poolq_question; $sSql = "select poola_id, poola_answer, poola_vote from ". POOLONETABLEA ." where 1=1 and poolq_id = ". $poolq_id; $pool_answer = $wpdb->get_results($sSql); } foreach ( $pool_answer as $answer ) { $poola_id = $answer->poola_id; $poola_answer = stripslashes($answer->poola_answer); $poola_vote = $answer->poola_vote; $poola_answer = str_replace( "##ANSWER##" , $poola_answer, $pool1_ans_css); $poola_answer = str_replace( "##RES##" , $poola_vote, $poola_answer, $pool1_res_css); $res = $res . $poola_answer; } $res = $res . '</div>'; echo $res; ?>. Выводится это все с помощью вот этого js скрипта: var xmlHttp function GetXmlHttpObject(handler) { var objXmlHttp=null if (navigator.userAgent.indexOf("Opera")>=0) { alert("This page doesn't work in Opera") return } if (navigator.userAgent.indexOf("MSIE")>=0) { var strName="Msxml2.XMLHTTP" if (navigator.appVersion.indexOf("MSIE 5.5")>=0) { strName="Microsoft.XMLHTTP" } try { objXmlHttp=new ActiveXObject(strName) objXmlHttp.onreadystatechange=handler return objXmlHttp } catch(e) { alert("Error. Scripting for ActiveX might be disabled") return } } if (navigator.userAgent.indexOf("Mozilla")>=0) { objXmlHttp=new XMLHttpRequest() objXmlHttp.onload=handler objXmlHttp.onerror=handler return objXmlHttp } } function SetPool(a) { var pool1_ans = document.getElementById("pool1_ans"); pool1_ans.value = a; } function pool1_ajx(siteurl) { var ans = document.getElementById("pool1_ans"); if( ans.value == "" || ans.value == "0" ) { alert("Please choose an answer."); return false; } document.getElementById("pool1_msg").innerHTML="loading..."; var date_now=new Date() var mynumber=Math.random() var url=siteurl+"/pool-one-wp-answer.php?ans="+ ans.value + "×tamp=" + date_now + "&action=" + mynumber; xmlHttp=GetXmlHttpObject(newchanged_ncc) xmlHttp.open("GET", url , true) xmlHttp.send(null) } /*Выводим результат голосование ссылкой (выводит только результат первого голосования в бд)*/ function pool1_ajx_res(siteurl) { var ans = document.getElementById("pool1_ans"); document.getElementById("pool1_msg").innerHTML="loading..."; var date_now=new Date() var mynumber=Math.random() var url=siteurl+"/pool-res.php?ans="; xmlHttp=GetXmlHttpObject(newchanged_ncc1) xmlHttp.open("GET", url , true) xmlHttp.send(null) } function newchanged_ncc1() { document.getElementById("pool1").innerHTML = (xmlHttp.responseText).trim(); } /*конец вывода результата*/ function newchanged_ncc() { //alert(xmlHttp.readyState); //alert(xmlHttp.responseText); if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { if((xmlHttp.responseText).trim()=="exs") { document.getElementById("pool1_msg").innerHTML="Please try after some time."; } else { document.getElementById("pool1").innerHTML = (xmlHttp.responseText).trim(); } } } String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); } String.prototype.ltrim = function() { return this.replace(/^\s+/,""); } String.prototype.rtrim = function() { return this.replace(/\s+$/,""); } Так как я еще совсем зелен в php и js, я не знаю как корректно реализовать вывод этих самых результатов. На данный момент при клике на ссылку "результаты" какой бы не был вопрос, у меня выводится результаты только первого в списке вопроса и ответы на него. Проясню на примере. Например у нас есть 2 опроса: №1 - "Лучшая мобильная ось" №2 - "Лучший производитель телефонов" Предположим пользователь видит вопрос №1, нажимает на "Результаты" - и о чудо, ему корректно присылаются данные с результатом именно к этому вопросу. Но если пользователь видит вопрос №2, то при клике на ссылку "Результаты" все-равно получает ответы только к первому вопросу. Хотя из-за специфики самого скрипта ( http://pastebin.com/DNdMvwEr ), если у него есть куки свидетельствующие о том, что он проголосовал за вопрос №1 ранее, то результат к опросу №2 будет абсолютно корректно отображаться. В общем если я правильно понял, у меня есть только 2 способа решить эту проблему. Либо присвоить всей форме опроса отдельный id и на основе этого id (предварительно сравнив) посылать корректные ответы. Либо же при помощи GET из .php получать id самого вопроса прописаного в .php скрипте. Как я уже говорил, к сожалению я еще полный нуб в веб программировании, и мне просто необходима помощь вашего уважаемого сообщества =) Буду очень признателен, за любую помощь -) Большое спасибо всем небезразличным =) |
Цитата:
(я вообще не понял, в чем суть вопроса выше) |
Часовой пояс GMT +3, время: 20:33. |