Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.12.2013, 14:25
Интересующийся
Отправить личное сообщение для Aligatro Посмотреть профиль Найти все сообщения от Aligatro
 
Регистрация: 02.12.2013
Сообщений: 15

Передача данных из 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 + "&timestamp=" + 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 скрипте.

Как я уже говорил, к сожалению я еще полный нуб в веб программировании, и мне просто необходима помощь вашего уважаемого сообщества =) Буду очень признателен, за любую помощь -)

Большое спасибо всем небезразличным =)
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2013, 15:44
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

Сообщение от Aligatro Посмотреть сообщение
Как я уже говорил, к сожалению я еще полный нуб в веб программировании, и мне просто необходима помощь вашего уважаемого сообщества =) Буду очень признателен, за любую помощь -)
очень рекомендую начать с учебников - php.su, learn.javascript.ru, и только потом переходить к реальным задачам.

(я вообще не понял, в чем суть вопроса выше)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных из Uploadify в php frutality jQuery 9 22.04.2016 03:54
java + php передача данных immortal.1986 AJAX и COMET 2 12.11.2013 15:02
передача данных из таблицы в php alexvb Серверные языки и технологии 18 07.04.2013 10:58
Передача данных из JS в PHP - что не так? Rokugan Общие вопросы Javascript 16 30.09.2011 17:52
Передача данных из формы Eugene Общие вопросы Javascript 4 15.12.2010 10:41