[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Смена значения инпута radio
WisesT
Доброго дня.
Знатоки ajax'а, подскажите пожалуйста как сделать следующее.

Есть страница ввода заказов (локальный сайт) с кучей инпутов.
Есть инпут "Фирма". Введа название фирмы, сотрудник может проверить наличие данных о ней и если они есть, то автоматом подтягивается адрес и телефон фирмы в соответственные инпуты.
Делается это через вот такой скрипт. Ниже код страницы ввода заказов и скрипта ajax.
insert.php
Свернутый текст

<?php
include("config.php");
$data = array();

$data [] = 'gotovnost';
$data [] = 'firma';
$data [] = 'adress';
$data [] = 'imya';
$data [] = 'tel';
$data [] = 'ves';
$data [] = 'kuda';
$data [] = 'oplata';
$data [] = 'primechaniya';
$data [] = 'prinyal';
$data [] = 'kurier';
$prioritet [] = 'prioritet';
$na_kogda [] = 'na_kogda';
$status [] = 'status';
if (isset($_POST['vvod'])) {
$gotovnost = $_POST['gotovnost'];
$prioritet = $_POST['prioritet'];
$firma = $_POST['firma'];
$adress = $_POST['adress'];
$imya = $_POST['imya'];
$tel = $_POST['tel'];
$ves = $_POST['ves'];
$kuda = $_POST['kuda'];
$oplata = $_POST['oplata'];
$primechaniya = $_POST['primechaniya'];
$primechaniya = str_replace("\n","<br>", $primechaniya);
$prinyal = $_POST['prinyal'];
$kurier = $_POST['kurier'];
$na_kogda = $_POST['na_kogda'];
$status = $_POST['status'];
if ($gotovnost != '' and $firma != '' and $adress != '' and $imya != '' and $tel != '' and $ves != '' and $kuda != '' and $oplata != '' and $prinyal != '' and $kurier != '' and $na_kogda != '') {

//отформатировал поле на когда
$date = explode("-", $_POST['na_kogda']);
$na_kogda = $date[2]."-".$date[1]."-".$date[0];
$add = mysql_query("INSERT INTO zakazy(na_kogda,gotovnost,prioritet,firma,adress,imya,tel,ves,kuda,oplata,primechaniya,prinyal,kurier ,status) VALUES ('$na_kogda','$gotovnost', '$prioritet','$firma','$adress','$imya','$tel','$ves','$kuda','$oplata','$primechaniya','$prinyal','$kurier','$status')");
header("Location: ".$_SERVER['REQUEST_URI']);
}
else
{
echo "<script language=javascript>alert('Вы заполнили не все поля');</script>";
//echo "Вы заполнили не все поля";
}
}

//v value na kogda <?=!empty($na_kogda)?$na_kogda:date('d-m-Y')?c>
?>
<html>
<
HEAD>
<
META http-equiv=content-type content=text/html; charset=UTF-8>
<
link rel="stylesheet" type="text/css" href="css/style.css" />

<
style type="text/css">

</
style>
<
script type="text/javascript" src="java/jquery.js"></script>
<
script type="text/javascript" src="java/jquery.maskedinput-1.2.2.js"></script>
<
script type="text/javascript">
jQuery(function($) {
$.mask.definitions['~']='[+-]';
$('#na_kogda').mask('99-99-9999');
$('#phone').mask('(999) 999-99-99');
$('#product').mask('aaaaa-яяяяя-99999-*****');
});</script>
<
script type="text/javascript">
<!--


function opfunk(deis){
value = $("#firma").val();
$.post("ajax.php",
{
act: deis,
what: value
},
function (result) {
try {
eval(result);
}
catch (e) {
alert(result);
}

}
);
return false;
}
//-->
</script>
<
title>Новый заказ</title>
</
HEAD>
<
body>
<
center>

<
table width="100%" height="100%" cellspacing="0">
<?php
require("include/header_html.txt");
?>


<tr>
<
td width="205px" valign="top" >
<?php
require("include/menu_html.txt");
?>

</td>

<
td valign="top" width="100%">

<
table width="100%" border="1" cellspacing="0">
<
tr>
<
td><div align="center">
<
p><strong>Введите данные заказа</strong></p>
<
p>Если поле "На когда" оставить пустым, то при первом нажатии "Ввести" будет подставлена текущая дата.</p>
<
p>При втором нажати - данные будут сохранены</p>
</
div></td>
</
tr>
<
tr>
<
td><div align="center">
<
p><strong><FONT color="green">Не стесняйтесь добавлять новых клиентов в базу. Зачем нам прочерки?</FONT></strong></p>
</
div></td>
</
tr>
</
table>
<
table width="100%" border="1" cellspacing="0">
<
tr>
<
td>
<
form action="?" method="post" name="frt" >
<
table align="center">

<
tr><td class="t2">На когда</td>
<
td> <input type="text" size="50" maxlength="10" name="na_kogda" id="na_kogda" value="<?php echo date('d-m-Y')?>"/><input type="checkbox" name="prioritet" value="1">Приоритет<br></td></tr>

<
tr><td class="t2">Готовность заказа</td>
<
td> <input type="text" size="50" maxlength="50" name="gotovnost" id="gotovnost"/></td></tr>

<
tr><td class="t2">Фирма</td>
<
td> <input type="text" size="50" maxlength="50" name="firma" id="firma"/><input type='button' value='Есть?' onclick="opfunk('prov');"></td></tr></td></tr>

<
tr><td class="t2">Адрес</td>
<
td> <input type="text" size="50" maxlength="100" name="adress" id="adress"/></td></tr>

<
tr><td class="t2">Имя</td>
<
td> <input type="text" size="50" maxlength="50" name="imya" id="imya"/></td></tr>

<
tr><td class="t2">Телефон</td>
<
td> <input type="text" size="50" maxlength="50" name="tel" id="tel"/></td></tr>

<
tr><td class="t2">Вес</td>
<
td> <input type="text" size="50" maxlength="50" name="ves" id="ves"/></td></tr>

<
tr><td class="t2">Куда</td>
<
td> <input type="text" size="50" maxlength="50" name="kuda" id="kuda"/></td></tr>
<!--<
input type="text" size="50" maxlength="50" name="oplata1" id="oplata1"/>--!>
<
tr><td class="t2">Оплата</td>
<
td>
<
input type="radio" name="oplata" value="Нал"> Наличный расчет<br>
<
input type="radio" name="oplata" value="Безнал" checked> Безналичный расчет<br>
<
input type="radio" name="oplata" value="Получатель"> Оплата получателем
</td></tr>

<
tr><td class="t2">Примечания</td>
<
td> <TEXTAREA type="text" NAME="primechaniya" id="primechaniya" ROWS=8 COLS=50></TEXTAREA> </td></tr>

<
tr><td class="t2">Принял</td>
<
td>
<
table width="100%" border="0">
<
tr>
<
td> <input type="radio" name="prinyal" value="Надежда" checked> Надежда</td>
<
td> <input type="radio" name="prinyal" value="Дима" > Дима</td>
<
td> <input type="radio" name="prinyal" value="Катя" > Катя</td>
</
tr>
<
tr>
<
td> <input type="radio" name="prinyal" value="Маша Б" > Маша Б</td>
<
td> <input type="radio" name="prinyal" value="Маша Г" > Маша Г</td>
<
td> <input type="radio" name="prinyal" value="Николай" > Николай</td>
</
tr>
<
tr>
<
td> <input type="radio" name="prinyal" value="Оксана" > Оксана</td>
<
td> <input type="radio" name="prinyal" value="Света" > Света</td>
<
td> <input type="radio" name="prinyal" value="Юля" > Юля</td>
</
tr>
<
tr>
<
td>-</td>
<
td><input type="radio" name="prinyal" value="Маша М">Маша М</td>
<
td>-</td>
</
tr>
</
table>
</
td></tr>

<
tr><td class="t2">Курьер</td>
<
td> <SELECT NAME="kurier" id="kurier">

<?php
require("include/kuriers.txt");
?>


<OPTION value="Не указан" SELECTED>Не указан

</SELECT></td></tr>


<
tr><td colspan="2" align="center"><input type="submit" name="vvod" value="Ввести"/>

<
script type="text/javascript">

<?php
foreach ($data as $c)
{
if (isset($_POST[$c]))
{
?>
document.getElementById('<?=$c ?>'). value = '<?=$_POST[$c]?>';
<?
}
}

?>

</script>


</
td></tr>
</
table>
</
form>

</
td>

</
tr>
</
table></td>
</
tr>


</
table>
</
center>
</
body>
</
html>


ajax.php
Свернутый текст

<?
$dbname= "dimex";
$dbuser= "root";
$dbpassword="753951";
$dbhost= "localhost";
$connect = mysql_connect($dbhost,$dbuser,$dbpassword);
@mysql_select_db($dbname,$connect);
// mysql_query("SET NAMES 'utf-8'");
// mysql_query("SET CHARACTER SET 'cp1251'");



$act = $_POST['act'];
$what = $_POST['what'];
$what=iconv("UTF-8", "utf-8", "".addslashes($what)."");
if($act == "prov"){
$firma = mysql_query("select * from clients where firma='".$what."'");
if(mysql_num_rows($firma) != 0) {
$firm = mysql_fetch_array($firma);
$js .="$('#adress').val('".$firm['adress']."');";
$js .="$('#tel').val('".$firm['tel']."');";
$js .="$('#oplata').val('".$firm['oplata']."');";
}
else {
$js .="alert('Нету. Добавьте клиента через форму добавления.');";
}
}



echo $js;

?>

Нужно чтоб при получении определенного значения "Оплата" (Нал, Безнал, Получатель") в форме автоматом менялось значение радио-инпута в нужное положение.
Значение oplata из ajax.php приходит (проверено в инпут-текст). А вот как сменить радио не знаю. Пытался нагуглить - тщетно.
Буду очень благодарен за вашу помощь.

П.С. Возможно невнятно описал все (я новичек). Если что - спрашивайте;)



Спустя 23 часа, 19 минут, 10 секунд (12.06.2012 - 10:54) DySprozin написал(а):
>Нужно чтоб при получении определенного значения "Оплата"
при получении _откуда_? (;

Спустя 1 час, 5 минут, 41 секунда (12.06.2012 - 11:59) WisesT написал(а):
из ajax.php приходят эти данные.
в инпут-текст подставляется без проблем. А вот как заставить смениться радио - не знаю.

Спустя 37 минут, 2 секунды (12.06.2012 - 12:36) DySprozin написал(а):
WisesT
как вариант, присвой каждому radio свой id (предположим, id="opl1", "opl2", "opl3"....).
потом по условию вроде такого:

...
if ($firm['oplata'] == 'Нал') {
$js .= "$('#opl1').attr('checked', 'checked')" .
"$('#opl2').attr('checked', '')" .
"$('#opl2').attr('checked', '')";
}
...


можно оптимизировать, но это уже сам разберешься (;

Спустя 2 часа, 32 минуты, 49 секунд (12.06.2012 - 15:09) WisesT написал(а):

<?
$dbname= "dimex";
$dbuser= "root";
$dbpassword="753951";
$dbhost= "localhost";
$connect = mysql_connect($dbhost,$dbuser,$dbpassword);
@mysql_select_db($dbname,$connect);
// mysql_query("SET NAMES 'utf-8'");
// mysql_query("SET CHARACTER SET 'cp1251'");



$act = $_POST['act'];
$what = $_POST['what'];
$what=iconv("UTF-8", "utf-8", "".addslashes($what)."");
if($act == "prov"){
$firma = mysql_query("select * from clients where firma='".$what."'");
if(mysql_num_rows($firma) != 0) {
$firm = mysql_fetch_array($firma);
$js .="$('#adress').val('".$firm['adress']."');";
$js .="$('#tel').val('".$firm['tel']."');";
if ($firm['oplata'] == 'Нал') {
$js .= "$('#opl1').attr('checked', 'checked')" .
"$('#opl2').attr('checked', '')" .
"$('#opl3').attr('checked', '')";
}
if ($firm['oplata'] == 'Безнал') {
$js .= "$('#opl1').attr('checked', '')" .
"$('#opl2').attr('checked', 'checked')" .
"$('#opl3').attr('checked', '')";
}
if ($firm['oplata'] == 'Получателем') {
$js .= "$('#opl1').attr('checked', '')" .
"$('#opl2').attr('checked', '')" .
"$('#opl3').attr('checked', 'checked')";
}
}

else {
$js .="alert('Нету. Добавьте клиента через форму добавления.');";
}
}



echo $js;

?>


Так что-ли?

Спустя 6 минут, 34 секунды (12.06.2012 - 15:16) DySprozin написал(а):
WisesT
похоже (;

Спустя 12 секунд (12.06.2012 - 15:16) WisesT написал(а):
Выскакивает окно JS с сообщением

Цитата
$('#adress').val('Заболотного, 158');$('#tel').val('050-355-08-08');$('#opl1').attr('checked', '')$('#opl2').attr('checked', 'checked')$('#opl3').attr('checked', '')


Благо хоть меняется в этом сообщении так как нужно. я про checked

Спустя 5 минут, 52 секунды (12.06.2012 - 15:22) DySprozin написал(а):
WisesT
елки-палки (; мну ";" расставить забыл))

        $js .= "$('#opl1').attr('checked', '');\r\n" . 
"$('#opl2').attr('checked', 'checked');\r\n" .
"$('#opl2').attr('checked', '');\r\n";


ты основную логику смотри (;

Спустя 34 секунды (12.06.2012 - 15:22) WisesT написал(а):
Нашел ошибку с opl1 opl2 и опять opl2 (было). Поправил, но всеравно выдает вышеуказанное сообщение (тоже его поправил)

Спустя 40 секунд (12.06.2012 - 15:23) WisesT написал(а):
Щас посмотрю)

Спустя 4 минуты, 41 секунда (12.06.2012 - 15:28) WisesT написал(а):
ЮХУУУУУ!!!! Работает ! Спасибо тебе огроменно!

Спустя 1 час, 42 минуты, 22 секунды (12.06.2012 - 17:10) DySprozin написал(а):
WisesT
всегда рад помочь (;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.