Спасибо, разобрался. Работает.
Привожу куски кода. <script> $(function() { $(".rowlink").bind( 'dblclick', function() { var id = $(this).find('.id').html(); $.post('transmission.php', {'id' : id}, function(data){$('#receiv #numpp').val(data[0]); $('#receiv #testdata').val(data[1]); $('#receiv #testdata1').val(data[2]) }, 'json'); }); }); </script> Часть таблицы (На форматирование таблицы внимание не обращайте, пока тестовый вариант). <table> <tbody> <tr> <th class="lable">ID:</th> <td class="input"><input id="numpp" name="numpp" size="40" maxlength="40" class="input" type="text" value=''></td> </tr> <tr> <th class="lable">*Имя:</th> <td class="input"><input id="testdata" name="name" size="40" maxlength="40" class="input" type="text" value=''></td> </tr> <tr> <th class="lable">*E-mail:</th> <td class="input"><input id="testdata1" name="email" size="40" maxlength="40" class="input" type="text" value=''></td> </tr> Transmission.php <?php if (isset($_POST['id']) && (int)$_POST['id']) {$id = $_POST['id'];} $lnc = mysql_connect("localhost","root",""); $connect = mysql_select_db('testdb', $lnc); $qu_ry="select `vall1`, `vall2` from `tstable` where numpp=$id"; //по полученному id делаем выборку из БД $qr_result = mysql_query($qu_ry); $data1 = mysql_fetch_array($qr_result); $lod = $data1['vall1']; //формируем и "возвращаем" массив $lod1 = $data1['vall2']; $valll=array($id, $lod, $lod1); $vall_mass=json_encode($valll); die ($vall_mass); ?> |
Так нельзя обращаться к базе, так нельзя отдавать данные клиенту, и т.д..
|
Цитата:
2. Что снова не так? 3. Что ещё не в порядке? Делал так, как Вы учили. И снова не то? Да и на... тогда оно надо. |
Цитата:
Данные подставляемые в качестве параметра запроса обязательно нужно обрабатывать, иначе это не "вероятность", а 100% возможность инъекции. Строковые значения данных принятых извне при выводе клиенту обязательно надо пропускать через htmlspecialchars. Столько копий ломалось, столько раз спрашивалось о данных отдаваемых клиенту, а там данных то кот наплакал, и в данном случае хватило бы html. $data1['vall1'] - такая же переменная как и $lod, то есть создавать промежуточную переменную $lod ради того чтобы поместить ее в массив, это расточительство. Да и не надо создавать массив промежуточный - mysql_fetch_array и возвращает массив данных одной строки запроса. Только использовать mysql_fetch_array без второго параметра, это плохо. vall1, vall2, ..., vall_восьмерка_на_боку, это самому же запутаться. |
1. То есть
<?php if (isset($_POST['id']) && (int)$_POST['id']) {$id = $_POST['id'];} $lnc = mysql_connect("localhost","root",""); $connect = mysql_select_db('testdb', $lnc); $qu_ry="select `vall1`, `vall2` from `tstable` where numpp=$id"; //по полученному id делаем выборку из БД $qr_result = mysql_query($qu_ry); $data1 = mysql_fetch_array($qr_result); $lod = $data1['vall1']; //формируем и "возвращаем" массив $lod1 = $data1['vall2']; $valll=array($id, $lod, $lod1); $vall_mass=json_encode($valll); die ($vall_mass); ?> можно сократить до <?php if (isset($_POST['id']) && (int)$_POST['id']) {$id = $_POST['id'];} $lnc = mysql_connect("localhost","root",""); $connect = mysql_select_db('testdb', $lnc); $qu_ry="select `vall1`, `vall2` from `tstable` where numpp=$id"; //по полученному id делаем выборку из БД $qr_result = mysql_query($qu_ry); $vall_mass=json_encode(mysql_fetch_array($qr_result)); die ($vall_mass); ?> 2. htmlspecialchars Употребляется в таком виде? $vall_mass=json_encode(htmlspecialchars (mysql_fetch_array($qr_result))); 3. Второй параметр mysql_fetch_array Использовать MYSQL_BOTH или MYSQL_NUM? |
Читать надо руководство, где сказано, что htmlspecialchars работает со строками, а mysql_fetch_array возвращает массив. А это означает, что кроме ошибки ничего не будет.
Собрались писать что-то, изучайте, по другому не получится. if (isset($_POST['id']) && (int)$_POST['id']) {$id = $_POST['id'];} - а подумать? |
Цитата:
|
Цитата:
Ну думайте, что вы делаете: isset($_POST['id']) - проверяется установлена ли переменная, все нормально далее должно быть, чтобы переменная приведенная к INTEGER не была равна 0. Проверили, успокоились, а переменной $id присвоили в конечном итоге значение $_POST['id']. И где же тут "безопасно"? $s = '12 abc'; echo (int)$s; //равно 12, а за 12 идет подстава, то есть проверка даст Ок, а в запрос будет подставлено 12 abc Я вам такого не показывал. Читайте руководство, будете изучать, все будет нормально. |
laimas,
Цитата:
Да и что проверять, если ID - однозначно число? По смыслу приложения - это индекс, autoincrement, заполняется из таблицы БД в поле "Номер п/п", и букв и прочих символов там быть не может. Так что проверка тут не нужна. Упоминал это несколько раз. Или Вы просто это не замечаете? Или Вам просто потроллить хочется? |
Однако, еще и тыкать собираетесь :) Это сюда что-ли?
if(isset($_POST['name']) && (int)$_POST['name']) { //выполняем код } Выполнение кода совсем не означает, что нужно привести к типу, а использовать все равно исходное. Так что ... Читайте руководство. Во-первых это не РНР форум, это раз, во-вторых рассказывать обо всем, на это просто нет времени. |
Часовой пояс GMT +3, время: 23:54. |