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 :: Выбор информации из БД при помощи ссылок и ajax

 PHP.SU

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


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

> Без описания
gigs
Отправлено: 23 Января, 2013 - 20:56:55
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012  
Откуда: Киев


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




Добрый день, помогите решить такую задачу. Есть база которая состоит из таких частей:

id | content1 | content2
1 | текст1 | текст2
2 | текст1 | текст2

и есть две ссылки, мне нужно сделать так чтоб при нажатии на первую ссылку выводились данные из id=1 content=1; а при нажатии на вторую ссылку выводились данные из id=1, content=2 и чтоб все это работало без перезагрузки страницы.

вот мой код

phpforajax2.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if (isset($_POST["key"])) $key = $_POST["key"];
  3. if (!mysql_connect("localhost","root","root"))
  4. {
  5.         exit;
  6. }
  7. $q = mysql_query("SELECT * FROM content_table WHERE id='$key'");
  8. $res = mysql_fetch_assoc($q);
  9. echo json_encode($res);


ajaxscript2.js
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.  
  3. function runajax()
  4.         {
  5.                 var myotpr = $("#myotpr").val();
  6.                 $.ajax({
  7.                   type: "POST",
  8.                   data: "key=" + myotpr,
  9.                   url: "myajax/phpforajax2.php",
  10.                   dataType: "json",
  11.                   success: function(data)
  12.                   {
  13.                         $("#fieldInp").val(data.id);
  14.                         $("#fieldP").html(data.content1);
  15.                                                
  16.                   }
  17.                 })
  18.                                
  19.         };
  20.  
  21.  
  22. //Выбор с помощью ссылок        
  23. $('#linki a').each(function(){
  24.        
  25. $(this).click (function(eventObject)
  26. {
  27.  eventObject.preventDefault();
  28.  var idlinki = $(this).attr ('href');        
  29.  $('#myotpr').val(idlinki);
  30. runajax();
  31.  });
  32. });
  33.  
  34. });
  35.  
  36.  


CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <body>
  3. <script type="text/javascript" src="js/jquery.js"></script>
  4. <script type="text/javascript" src="js/ajaxscript2.js"></script>
  5.  
  6. <div id="linki"><strong>3.</strong>Выбор информации из БД при помощи ссылок:<br/>
  7. <a href="1" id="linki1"  >Извлечение информации из ID=1, content=1</a><br/>
  8. <a href="1" id="linki1"  >Извлечение информации из ID=1, content=2</a><br/>
  9. </div>
  10.  
  11.  <u>Результаты обработки запроса:</u></strong></p>
  12. <p><input type="text" id="fieldInp"></p>
  13.  


если так сделать то у меня при нажатии и на первую и на вторую ссылку выводит данные из ID=1, content=1 , я вот не знаю что нужно прописать во второй ссылке и в файле ajaxscript2.js, чтоб если я нажму на первую ссылку то мне выводило данные из ID=1, content=1 а если я нажму на вторую ссылку то мне выводило данные из ID=1, content=2. Помогите пожалуйста решить данную задачу.

(Отредактировано автором: 23 Января, 2013 - 21:06:42)

 
 Top
esterio
Отправлено: 23 Января, 2013 - 21:01:42
Post Id



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


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


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




Бегло пробежался. Помоему у Вас замикание, уж больно на ето похоже
 
 Top
gigs
Отправлено: 23 Января, 2013 - 21:11:33
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012  
Откуда: Киев


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




у меня в ajaxscript2.js нужно еще дописать $("#fieldP2").html(data.content2); и тогда будет выглядеть так:

CODE (javascript):
скопировать код в буфер обмена
  1. success: function(data)
  2.                   {
  3.                         $("#fieldInp").val(data.id);
  4.                         $("#fieldP").html(data.content1);
  5.                         $("#fieldP2").html(data.content2);
  6.                                                
  7.                   }


но если так сделать то при нажатии на первую ссылку то мне будет выводит данные из content1 и content2 одновременно, а мне нужно чтоб при нажатии на первую ссылку выводило данные из content1, а при нажатии на вторую из content2, вот я не знаю что мне прописать чтоб работало такое условие.
(Добавление)
может это я что то не так делаю, если можете то напишите пожалуйста как должно быть правильно чтоб оно работало, а то я уже четвертый день мучаюсь и ничего не получается.

(Отредактировано автором: 23 Января, 2013 - 21:33:51)

 
 Top
spsu
Отправлено: 24 Января, 2013 - 00:02:15
Post Id



Частый гость


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


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




[PHP][$q = mysql_query("SELECT * FROM content_table WHERE id='$key'"); //Тут sql_inj
/PHP]

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. //Выбор с помощью ссылок        
  3. $('#linki a').each(function(){
  4.        
  5. $(this).click (function(eventObject)
  6. {
  7.  eventObject.preventDefault();
  8.  var idlinki = $(this).attr ('href');        
  9.  $('#myotpr').val(idlinki);
  10. runajax();
  11.  });
  12. });
  13.  
  14. });
  15.  

Цикл тут не нужен.
Вот-так можно.
CODE (javascript):
скопировать код в буфер обмена
  1. [code=javascript]
  2. $('#linki a').click (function(eventObject)
  3. {
  4.  eventObject.preventDefault();
  5.  var idlinki = $(this).attr ('href');        
  6.  $('#myotpr').val(idlinki);
  7. runajax();
  8.  });
  9.  


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. success: function(data)
  3.                   {
  4.                         $("#fieldInp").val(data.id);
  5.                
  6.                         $("#fieldP2").html(data.content2);
  7.                                                
  8.                   }
  9.  

Как вариант:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $("#fieldInp").val(data.id);
  3. if ( $('#myotpr').val(idlinki) == "1")
  4.      $("#fieldP").html(data.content1);
  5. else
  6.    $("#fieldP2").html(data.content2);
  7.  

Но вообще сам подход не совсем красивый .
 
 Top
gigs
Отправлено: 24 Января, 2013 - 00:09:04
Post Id


Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Апр. 2012  
Откуда: Киев


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




при переходе по ссылкам выдает ошибку Error 404
 
 Top
spsu
Отправлено: 24 Января, 2013 - 00:33:12
Post Id



Частый гость


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


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




gigs пишет:
при переходе по ссылкам выдает ошибку Error 404

Да, там-же в href прописано число.. А дрк-тасименем 1 нет на сервере уть позже вам код скину готовый.
 
 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