как разместить значение на другой странице и вернуть данные не через iframe (php) - PullRequest
0 голосов
/ 05 мая 2011

У меня много тегов.Я хочу щелкнуть каждый тег, а затем опубликовать / получить значение тега на другой странице.

На другой странице получил значения и сделал запрос mysql.Затем верните пересчитанные данные на первую страницу (не создавайте iframe).

Я думаю, что jquery post и load могут это сделать (но понятия не имеют, как объединить две функции).Или, может быть, есть другой способ.Кто-нибудь может дать мне простой пример?Спасибо.

обновление

products.php

<a href="data.php?get=hml03">model:hml03</a>
<a href="data.php?get=hml04">model:hml04</a>
<a href="data.php?get=hml05">model:hml05</a><!--post value from products.php-->
...<!--many other tags -->
<div class="show_data"></div><!-- get the data back show in here without refresh the page.

data.php

<div id="data">
<?php
$result = mysql_query("SELECT id,name,details,add_date,model FROM ctw_products WHERE (MATCH (name,details,model) AGAINST ('+$_GET['get']' IN BOOLEAN MODE) Order By add_date DESC LIMIT 20 "); // get value with a mysql query 
while ($row = mysql_fetch_array($result))
{
echo '<div class="name">'.$row['name'].'</div>';
echo '<div class="model">'.$row['model'].'</div>'; 
echo '<div class="details">'.$row['details'].'</div>';// how to return this part of datas back to products.php 
}
?>
</div>

Ответы [ 2 ]

0 голосов
/ 05 мая 2011

Если ваши страницы ВСЕ в одном домене, вы можете сделать следующее:

Предположим, что у вас есть первая страница, на которой вы не хотите вставлять iframe, имя страницы - yourPage.php. И предположим, что у вас есть еще одна страница с именем yourService.php

Что я понимаю из вашего вопроса, так это то, что вы просто хотите выполнить простой AJAX-запрос, чтобы ПОСТАВИТЬ / ПОЛУЧИТЬ некоторые данные на страницу и получить ответ.

С помощью jQuery вы можете сделать это.

На yourPage.php у вас будет:

<html>
[...]
<script type="text/javascript">
function callService() {
$.ajax({
  type: "GET", // or "POST",
  data: "myLogin=login&myPassword=password",
  url: "./yourService.php",
  success: function(data){
    alert("The service told me : " + data); // data is the response, make something with     that like putting your data on your HTML page
  }
});
}
</script>
[...]
<a href="#" onclick="callService(); return false;">Call the service</a>
[...]
</html>

А на вашем Service.php:

<?php
 // retrieve the data by looking at $_GET['login'] and $_GET['password'] (or $_POST)
 // clean-up the variables if needed
 // perform the MySQL query (by using mysql_query() for example)
 // retrieve the data from the database
 echo 'You are now connected'; // send something to yourPage.php by writing some data with the echo() function for example
?>

Надеюсь, мой ответ поможет вам. Это решение не работает, если yourService.php не находится на том же доменном имени, что yourPage.php (механизм javascript вашего браузера заблокирует это)

0 голосов
/ 05 мая 2011

С JavaScript Вы не можете делать вызовы AJAX на другие домены. Это «функция» браузера, которая блокирует эти вызовы для предотвращения сценариев в домене corss ...

Но все же Вы можете сделать это с помощью PHP. Если Вы также хотите получить ответ относительно своего поста, Вы можете использовать cURL http://php.net/curl.. Если Вы хотите использовать просто получить, это намного проще, Вы звоните только со своего PHP:

$response = file_get_contents('http://www.domain.com/some_page.php?data=' . $my_get_data);

В зависимости от формата данных ответа Вы можете вывести их напрямую или сначала проанализировать их.

Если вам нужно, чтобы они были представлены на другой странице (которой вы сейчас являетесь), вы можете сохранить данные в $ _SESSION и выполнить перенаправление ...

$_SESSION['response'] = file_get_contents('http://www.domain.com/some_page.php?data=' . $my_get_data);
header('Location: http://www.my_domain.com/my_first_page.php');

и на вашем my_first_page.php вы можете сделать

var_dump($_SESSION['response']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...