Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: GET id из php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Aligatro
Отправлено: 26 Декабря, 2013 - 14:20:10
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Доброго времени суток уважаемые форумчане =) Давеча столкнулся с такой проблемой, не могу корректно связать вопрос с ответами на него.

Есть .php скрипт вывода результатов голосования:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /*Выводим результаты голосования для тех кто не голосовал по ссылке*/
  3. $pool1_abspath = dirname(__FILE__);
  4. $pool1_abspath_1 = str_replace('wp-content/plugins/pool-one-wp-plugin', '', $pool1_abspath);
  5. $pool1_abspath_1 = str_replace('wp-content\plugins\pool-one-wp-plugin', '', $pool1_abspath_1);
  6. require_once($pool1_abspath_1 .'wp-config.php');
  7.  
  8. $ans = @$_GET["ans"];
  9. $res = "";
  10. global $wpdb, $wp_version;
  11. $pool1_que_css = "<div class='pool-question'>##QUESTION##</div>";
  12. $pool1_ans_css = "<div class='pool-answer'>##ANSWER## <span class='pool-result'>(##RES##)</span></div>";
  13.  
  14.  
  15.  
  16.  
  17.         $sSql = "select poolq_id, poolq_question from ". POOLONETABLEQ ." where 1=1";
  18.         $sSql = $sSql . " limit 0,1;";
  19.         $pool_question = $wpdb->get_results($sSql);
  20.  
  21.  
  22.                         $pool1_que_css = "<div class='pool-question'>##QUESTION##</div>";
  23.                         $pool1_ans_css = "<div class='pool-answer'>##ANSWER## <span class='pool-result'>(##RES##)</span></div>";
  24.                         $res = '<div id="pool1">';
  25.                         foreach ( $pool_question as $question )
  26.                         {
  27.                                 $poolq_id = $question->poolq_id;
  28.                                 $poolq_question = stripslashes($question->poolq_question);
  29.                                 $poolq_question = str_replace( "##QUESTION##" , $poolq_question, $pool1_que_css);
  30.                                 $res = $res . $poolq_question;
  31.                                 $sSql = "select poola_id, poola_answer, poola_vote from ". POOLONETABLEA ." where 1=1 and poolq_id = ". $poolq_id;
  32.                                 $pool_answer = $wpdb->get_results($sSql);
  33.                                
  34.                         }
  35.                         foreach ( $pool_answer as $answer )
  36.                         {
  37.                                                 $poola_id = $answer->poola_id;
  38.                                                 $poola_answer = stripslashes($answer->poola_answer);
  39.                                                 $poola_vote = $answer->poola_vote;
  40.                                                 $poola_answer = str_replace( "##ANSWER##" , $poola_answer, $pool1_ans_css);
  41.                                                 $poola_answer = str_replace( "##RES##" , $poola_vote, $poola_answer, $pool1_res_css);
  42.                                                 $res = $res . $poola_answer;
  43.                         }
  44.                         $res = $res . '</div>';
  45.                         echo $res;
  46.                
  47. ?>
.
Выводится это все с помощью вот этого js скрипта:
CODE (javascript):
скопировать код в буфер обмена
  1. var xmlHttp
  2. function GetXmlHttpObject(handler)
  3. {
  4.         var objXmlHttp=null
  5.         if (navigator.userAgent.indexOf("Opera")>=0)
  6.         {
  7.                 alert("This page doesn't work in Opera")
  8.                 return
  9.         }
  10.         if (navigator.userAgent.indexOf("MSIE")>=0)
  11.         {
  12.                 var strName="Msxml2.XMLHTTP"
  13.                 if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
  14.                 {
  15.                         strName="Microsoft.XMLHTTP"
  16.                 }
  17.                 try
  18.                 {
  19.                         objXmlHttp=new ActiveXObject(strName)
  20.                         objXmlHttp.onreadystatechange=handler
  21.                         return objXmlHttp
  22.                 }
  23.                 catch(e)
  24.                 {
  25.                         alert("Error. Scripting for ActiveX might be disabled")
  26.                         return
  27.                 }
  28.         }
  29.         if (navigator.userAgent.indexOf("Mozilla")>=0)
  30.         {
  31.                 objXmlHttp=new XMLHttpRequest()
  32.                 objXmlHttp.onload=handler
  33.                 objXmlHttp.onerror=handler
  34.                 return objXmlHttp
  35.         }
  36. }
  37.  
  38. function SetPool(a)
  39. {
  40.         var pool1_ans = document.getElementById("pool1_ans");
  41.         pool1_ans.value = a;
  42. }
  43.  
  44.  
  45. function pool1_ajx(siteurl)
  46. {
  47.         var ans = document.getElementById("pool1_ans");
  48.         if( ans.value == "" || ans.value == "0" )
  49.         {
  50.                  alert("Please choose an answer.");
  51.                  return false;  
  52.         }
  53.         document.getElementById("pool1_msg").innerHTML="loading...";
  54.         var date_now=new Date()
  55.     var mynumber=Math.random()
  56.         var url=siteurl+"/pool-one-wp-answer.php?ans="+ ans.value + "&timestamp=" + date_now + "&action=" + mynumber;
  57.     xmlHttp=GetXmlHttpObject(newchanged_ncc)
  58.     xmlHttp.open("GET", url , true)
  59.     xmlHttp.send(null)
  60.        
  61. }
  62.  
  63.  
  64.  
  65.  
  66. /*Выводим результат голосование ссылкой (выводит только результат первого голосования в бд)*/
  67.  
  68. function pool1_ajx_res(siteurl)
  69. {
  70.         var ans = document.getElementById("pool1_ans");
  71.  
  72.         document.getElementById("pool1_msg").innerHTML="loading...";
  73.         var date_now=new Date()
  74.     var mynumber=Math.random()
  75.         var url=siteurl+"/pool-res.php?ans=";
  76.     xmlHttp=GetXmlHttpObject(newchanged_ncc1)
  77.     xmlHttp.open("GET", url , true)
  78.     xmlHttp.send(null)
  79.        
  80. }
  81.  
  82. function newchanged_ncc1()
  83. {
  84.                 document.getElementById("pool1").innerHTML = (xmlHttp.responseText).trim();
  85.                
  86. }
  87.  
  88. /*конец вывода результата*/
  89.  
  90.  
  91. function newchanged_ncc()
  92. {
  93.         //alert(xmlHttp.readyState);
  94.         //alert(xmlHttp.responseText);
  95.         if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  96.         {
  97.                 if((xmlHttp.responseText).trim()=="exs")
  98.                 {
  99.                         document.getElementById("pool1_msg").innerHTML="Please try after some time.";
  100.                 }
  101.                 else
  102.                 {
  103.                         document.getElementById("pool1").innerHTML = (xmlHttp.responseText).trim();
  104.                 }
  105.         }
  106. }
  107.  
  108. String.prototype.trim = function() {
  109.         return this.replace(/^\s+|\s+$/g,"");
  110. }
  111. String.prototype.ltrim = function() {
  112.         return this.replace(/^\s+/,"");
  113. }
  114. String.prototype.rtrim = function() {
  115.         return this.replace(/\s+$/,"");
  116. }

Так как я еще совсем зелен в php и js, я не знаю как корректно реализовать вывод этих самых результатов. На данный момент при клике на ссылку "результаты" какой бы не был вопрос, у меня выводится результаты только первого в списке вопроса и ответы на него. Проясню на примере.

Например у нас есть 2 опроса:
№1 - "Лучшая мобильная ось"
№2 - "Лучший производитель телефонов"

Предположим пользователь видит вопрос №1, нажимает на "Результаты" - и о чудо, ему корректно присылаются данные с результатом именно к этому вопросу. Но если пользователь видит вопрос №2, то при клике на ссылку "Результаты" все-равно получает ответы только к первому вопросу. Хотя из-за специфики самого скрипта ( http://pastebin[dot]com/DNdMvwEr ), если у него есть куки свидетельствующие о том, что он проголосовал за вопрос №1 ранее, то результат к опросу №2 будет абсолютно корректно отображаться.

В общем если я правильно понял, у меня есть только 2 способа решить эту проблему. Либо присвоить всей форме опроса отдельный id и на основе этого id (предварительно сравнив) посылать корректные ответы.
Либо же при помощи GET из .php получать id самого вопроса прописаного в .php скрипте.

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

Большое спасибо всем небезразличным =)

(Отредактировано автором: 26 Декабря, 2013 - 14:22:21)

 
 Top
esterio
Отправлено: 26 Декабря, 2013 - 14:26:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1. http://javascript[dot]ru/ajax/intro
2. Ответ в JSON формате

А в общем зачем вам AJAX если вы еще PHP толком не изучили.
 
 Top
Aligatro
Отправлено: 26 Декабря, 2013 - 14:45:32
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




esterio, да я еще вообще толком ничего не изучил, ни js ни php =) Весь скрипт не мой, мне просто необходимо переделать готовый плагин для реализации функционала на сайте =) Честно признаться, я не то что не знаю php и js я даже в синтаксесе толком разобраться не могу. А во время редактирование какого-либо плагина, просто пытаюсь найти закономерность и методом проб и ошибок подставляю разный код =) Так и живу =)
 
 Top
eai
Отправлено: 26 Декабря, 2013 - 14:49:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Aligatro пишет:
esterio, да я еще вообще толком ничего не изучил, ни js ни php =) Весь скрипт не мой, мне просто необходимо переделать готовый плагин для реализации функционала на сайте =) Честно признаться, я не то что не знаю php и js я даже в синтаксесе толком разобраться не могу. А во время редактирование какого-либо плагина, просто пытаюсь найти закономерность и методом проб и ошибок подставляю разный код =) Так и живу =)

А какое либо к программированию вы вообще имеете ? Подмигивание
 
 Top
esterio
Отправлено: 26 Декабря, 2013 - 15:25:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Aligatro
Ну в двух словах здесь никак не обьяснить ((
 
 Top
Aligatro
Отправлено: 26 Декабря, 2013 - 16:48:14
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




eai, ну если так с плеча рубить, то никакого -=) Потихоньку учусь, читаю статьи пытаюсь кое-как кодить =) А может у кого-то есть хотя бы отдаленный пример такого-же функционала, может я бы через какое-то время разобрался =) Или вся эта радость ограничивается отнюдь не 10-15 строками кода? =)
 
 Top
eai
Отправлено: 26 Декабря, 2013 - 17:00:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Aligatro пишет:
eai, ну если так с плеча рубить, то никакого -=) Потихоньку учусь, читаю статьи пытаюсь кое-как кодить =) А может у кого-то есть хотя бы отдаленный пример такого-же функционала, может я бы через какое-то время разобрался =) Или вся эта радость ограничивается отнюдь не 10-15 строками кода? =)

Понимаешь ли какое дело, ..., код от одной программы совершенно не подходит другой. И даже если его можно использовать то надо понимать каждую строку. Код который вы прислали, не сказать что очень сложный, но не простой, он затрагивает несколько технологий.
Тут объяснить труднее чем просто за вас все сделать.
Объяснять надо начинать с "С начало было слово и слово было о двух байтах"
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB