Jump to content
  • 0

Ajax+php+java.


Vor
 Share

Question

Здравствуйте. У меня возникла проблема которую сам решить не могу. Суть Проблемы такова:

Есть форма на HTML странице


<form action="search_db.php" method="post">
DATA1
<select name="data1">
<option value="9">9</option>
<option value="10">10</option>
</select>
<br>
DATA2
<select name="data2">
<option value="11">11</option>
<option value="12">12</option>
</select>
<br>

<input class="button" value="Найти" type="submit" />
</form>

Есть php скрипт. С ним все ок, работает.

Хочу результаты работы скрипта вывести в HTML странице после нажатия на submit.

Дошел до того что нужно использовать Ajax, но примеров с передачей нескольких параметров и возвратом результатов, не нашел. Как это реализовать?

Заранее спасибо.

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

Не java, а javascript, как я понимаю

передача нескольких параметров:

ajax.open('GET','file.php?a=1&b=2&c=3',1);
ajax.send(null);

ajax.open('POST','file.php',1);
ajax.send('a=1&b=2&c=3');

Это настолько очевидно, что мне кажется, ты не понимаешь сути get- и post-параметров.

Не забудь дополнительные заголовки для post

Link to comment
Share on other sites

  • 0

Не java, а javascript, как я понимаю

передача нескольких параметров:

ajax.open('GET','file.php?a=1&b=2&c=3',1);
ajax.send(null);

ajax.open('POST','file.php',1);
ajax.send('a=1&b=2&c=3');

Это настолько очевидно, что мне кажется, ты не понимаешь сути get- и post-параметров.

Не забудь дополнительные заголовки для post

Я только начал вариться в этой каше, так что если туплю, извините. Спасибо сейчас буду разбираться.

Link to comment
Share on other sites

  • 0

Я на этом сайте уже был. Мне пример нужен :huh: . В нете все примеры обработки состоят из одной двух строчек кода, ни начала, ни конца, ни описания. Даже элементарно бутон не могу к этому всему подключить, может потому что вторую сутку не сплю. Но все равно спасибо.

Link to comment
Share on other sites

  • 0

Там есть пример кода. Читайте все по-порядку.


function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

Вот к примеру основная функция для кроссбраузерного получения объекта XMLHttpRequest, без которого собссно никакого аякса быть не может. Что вас не устраивает?

Link to comment
Share on other sites

  • 0

function myajax(method,param,func)		//Аякс-запрос
{
var poststring='';
if (arguments[3]) poststring=arguments[3]; //Сюда передаются post-данные в случае post-запроса
var hto=new XMLHttpRequest();
if (!arguments[1] || !arguments[2]) return 0;
if (hto) { try {
if (hto.readyState == 0 || hto.readyState == 4)
{
if (method == 'get' || method == 'GET') //Для гет-запроса
{
hto.open('GET',param,1);
hto.onreadystatechange=function() {if (hto.readyState == 4 && hto.status == 200) func(hto.responseText);}
hto.send(null);
}
else if (method == 'post' || method == 'POST')
{
hto.open('POST',param,1);
hto.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
hto.setRequestHeader('Content-length', poststring.length);
hto.setRequestHeader('Connection', 'close');
hto.send(poststring);
hto.onreadystatechange=function() {if (hto.readyState == 4 && hto.status == 200) func(hto.responseText);}
}
} else setTimeout(function() {myajax(method,param,func,poststring);},1000);
} catch (e) {alert('Ошибка отправки запроса '+e);}
} else alert('Не удалось создать XMLHttp-объект для соединения с сервером');
}


myajax('get','file.php?a=1&b=2&c=3',function(resp) {alert('Ответ на GET: '+resp);});
myajax('post','file.php',function(resp) {alert('Ответ на POST: '+resp);},'a=1&b=2&c=3');

Самописная функция, вроде пока не меня подводила (на ie я забиваю, но доработать это дело кодом из предыдущего поста - раз плюнуть)

onreadystatechange можно вынести после if'ов для красоты, но это уже мелочи.

Link to comment
Share on other sites

  • 0

Int

Ого, сразу пришла мысль о суициде. Я тут нихрена не понимаю но буду долбить дальше пока не дойдет.

а как понять это?

a=1&b=2&c=3

name=value&name=value&name=value ?

и в какой div будет выводить результат? с каким id?

Edited by Vor
Link to comment
Share on other sites

  • 0

Int

Предложений Вами код выводит ответ сразу при загрузке страницы, при этом выводит все что есть в таблице БД, мне же нужно чтобы чтобы пользователь выбрал в форме ширину фото, потом высоту, нажал на кнопку и ему снизу отобразило результат.

Не прошу сделать вместо меня, прошу скиньте мне кто нибудь описание с примером как это сделать или ссылку на пример. Проект не коммерческий, делаю в подарок любимой девушке, за что уже ее начал тихо ненавидеть. Делаю такое впервые, знаний нет но на примере разберусь.

Link to comment
Share on other sites

  • 0

Мой код берёт текстовый ответ resp и выводит его в alert. Если нужно вставить этот ответ куда-то в страницу, нужно писать соответствующий код. Я и не говорил, что это решение задачи, это только функция отправки запроса и получения ответа на него.

Что должно являться результатом? Если <img> нужных размеров, то нужно распарсить ответ (xml тут использовать слишком громоздко, json в самый раз будет) и задать этому img габариты через стили. Получить img можно через document.getElementById

За 50 wmr могу помочь в решении конкретно этой задачи.

Link to comment
Share on other sites

  • 0

Мой код берёт текстовый ответ resp и выводит его в alert. Если нужно вставить этот ответ куда-то в страницу, нужно писать соответствующий код. Я и не говорил, что это решение задачи, это только функция отправки запроса и получения ответа на него.

Что должно являться результатом? Если <img> нужных размеров, то нужно распарсить ответ (xml тут использовать слишком громоздко) и задать этому img габариты через стили. Получить img можно через document.getElementById

За 50 wmr могу помочь в решении конкретно этой задачи.

Результатом должно быть фото с ссылкой. Результат формируется в ПХП и выводиться через echo в HTML формате. Я пробовал это организовать по такому описанию http://seovirus.ru/novomodnaya-texnologiya-ajax-php-kak-v-lyogkuyu-i-s-primerami.html, результат выводился там где надо но выводился как и в предложенном вами варианте, вся таблица. Делал как то так

<html>
<head><title>AJAX Forever!</title></head>
<body>

<h1>Работа с AJAX</h1>
<div id="updateMe">Update me!!!</div>

<script type="text/javascript" src="prototype.js"></script>

<script type="text/javascript">
function Update(){
new Ajax.Updater( 'updateMe', 'search_db.php', {
method: 'get',
parameters: { data1: 'data1', data2: 'data2', }
});
}
</script>

<center>
<form method="post" onsubmit="return false">
DATA1
<select name="data1">
<option value="9">9</option>
<option value="10">10</option>
</select>
<br>
DATA2
<select name="data2">
<option value="11">11</option>
<option value="12">12</option>
</select>
<br>

<input type="button" value="Найти" onclick="Update()">

</form>
</center>

</body>
</html>


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

Если поможете я скину вам 50 рубл. но только в ЯД, ок?

Link to comment
Share on other sites

  • 0

Потратив не мало времени дошел до того что запрос отправляется, поскольку в урл формируется ?data1=9&data2=11.

HTML i Javascript


<html>

<body>



<h1>Работа с AJAX</h1>


<script type="text/javascript" src="prototype.js"></script>

<script type="text/javascript">

function ajaxFunction() {
new Ajax.Updater( 'updateMe', 'search_db.php', {
method: 'get',
parameters: { data1: 'data1', data2: 'data2'}
});
}
</script>


<form action="" >
DATA1
<select name="data1">
<option value="9">9</option>
<option value="10">10</option>
</select>
<br>
DATA2
<select name="data2">
<option value="11">11</option>
<option value="12">12</option>
</select>


<input class="button_disc" value="Найти" onclick="ajaxFunction();" type="submit" />


</form>


<div id="updateMe">Update me!!!</div>
</body>
</html>

search_db.php


<?php

..............
Присойденяюсь к БД
..............


/* Выполнение SQL запроса */

$query = "SELECT * FROM foto WHERE data1 LIKE '%".strtoupper($_GET['data1'])."%' OR data2 LIKE '%".strtoupper($_GET['data2'])."%'";

$result = mysql_query($query) or die("Запрос ошибочный");


/* Печать результатов в HTML */




while ($row= mysql_fetch_array($result))
{
$first_name= $row["image"];

echo "<a href='/image/$first_name'><img src='/image/$first_name' alt='$first_name' />";
}


/* Освобождение памяти, занятой результатом запроса */
mysql_free_result($result);
/* Закрытие соединения */
mysql_close($link);
?>

Результат должен быть в

<div id="updateMe">Update me!!!</div>

вместо Update me!!!

НО НЕ РАБОТАЕТ!!! Хотя когда не использовал аякс все работало. Почему?

И насколько правильно использовать

LIKE '%".strtoupper($_GET['data1'])."%'

?????

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy