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
Форумы портала PHP.SU :: Версия для печати :: Проблема вывода из html
Форумы портала PHP.SU » » Вопросы новичков » Проблема вывода из html

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

1. Sikiro1 - 18 Октября, 2016 - 17:40:32 - перейти к сообщению
Добрый день.
Совсем новичок, помогите решить проблему
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function Test($patt='<div id="SN" name="SN"></div>')
  4. {
  5.         echo "ПРивет $patt";   
  6. };
  7.  
  8. ?>

есть функция (id и name формируются скриптом), если ее вывести через echo Test(), то отображается нужное значение, но если это сунуть в
CODE (html):
скопировать код в буфер обмена
  1. <input class = "inputbox" style = "width: 110px" name = "search" id = "jshop_search" value = "<?php Test()?>"/>

то вывод будет тупо ввиде текста <div id="SN" name="SN"></div>
При этом если в функция вместо дивов сунуть постоянное значение, цифру например, все будет нормально работать....
В общем как сделать чтобы заработало?
2. IllusionMH - 18 Октября, 2016 - 17:58:01 - перейти к сообщению
Sikiro1, а зачем вы разметку пихаете в текстовое поле?
3. Sikiro1 - 18 Октября, 2016 - 18:04:27 - перейти к сообщению
IllusionMH пишет:
Sikiro1, а зачем вы разметку пихаете в текстовое поле?

Ивините, не понял....
вы про value=""?
или
про
function Test($patt='123')

Но если сделать так например
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function Test($patt='123')
  4. {
  5.         echo "ПРивет $patt";   
  6. };
  7.  
  8. ?>

то все нормально заработает... мне нужно добиться того,, что бы он все таки брал значение из <div id="SN" name="SN"></div>
оно именно в value не работает....
ковыряю методом проб и ошибок...
4. IllusionMH - 18 Октября, 2016 - 18:12:06 - перейти к сообщению
Sikiro1, html запихнуть в текстовое поле не получится, делайте strip_tags.
Окуды вы вообще это значение в тегах берете и пытаетесь его вставить в текстовое поле?
5. Sikiro1 - 18 Октября, 2016 - 18:25:59 - перейти к сообщению
IllusionMH пишет:
Sikiro1, html запихнуть в текстовое поле не получится, делайте strip_tags.
Окуды вы вообще это значение в тегах берете и пытаетесь его вставить в текстовое поле?

Не помогает
ни так, ни чего не выводит
PHP:
скопировать код в буфер обмена
  1. function Test($patt='<div id="SN" name="SN"></div>')
  2. {
  3.         echo strip_tags($patt);
  4. };

и так тоже, выводит опять <div id="SN" name="SN"></div>
PHP:
скопировать код в буфер обмена
  1. value = "<?PHP echo strip_tags(Test())?>"


видимо я совсем не бум-бум
6. IllusionMH - 18 Октября, 2016 - 18:40:26 - перейти к сообщению
Sikiro1, и что же там не работает? http://sandbox[dot]onlinephpfunction[dot][dot][dot]c35511fb0935dc63
7. Sikiro1 - 18 Октября, 2016 - 18:55:32 - перейти к сообщению
IllusionMH пишет:
Sikiro1, и что же там не работает? http://sandbox.onlinephpfunctions.com/code/b3af781cbe383fe5ca310c69c35511fb0935dc63

если поставить вот это
PHP:
скопировать код в буфер обмена
  1. echo strip_tags('<div id="SN" name="SN">123</div>')

выводит только 123, без данных из id="SN" name="SN"

Почему если у меня это
PHP:
скопировать код в буфер обмена
  1. function Test($patt='<div id="SN" name="SN"></div>')
  2. {
  3.         echo $patt;    
  4. };

работает в любом другом месте кода, но именно в value не работает.
PHP:
скопировать код в буфер обмена
  1. <input class = "inputbox" style = "width: 110px" name = "search" id = "jshop_search" value = "<?PHP echo Test()?>"/>
  2. <?PHP echo Test()?>

то есть в поле "inputbox" отображается тупо текст <div id="SN" name="SN"></div>
а в след строке все нормально отображает, данные берутся из скрипта которые завязаны на базу, используется jquery
данные выводятся например "55B24R"
(Добавление)
Помогите пожалуйста, третий день бьюсь...
что не так делаю то.....
8. IllusionMH - 19 Октября, 2016 - 13:49:47 - перейти к сообщению
Sikiro1, в очередной раз повторяю: value - для текстового содержимого поля, там должен быть текст, а не html разметка.

Вы на вопросы нормально ответьте: зачем вы пытаетесь засунуть html код в текстовое поле? чего хотете добиться? Ситилей или еще чего?
Откуда вообще этот HTML берется?
Покажите примеры того что должно в итоге получтся.
9. Sikiro1 - 19 Октября, 2016 - 14:49:17 - перейти к сообщению
IllusionMH пишет:
Sikiro1, в очередной раз повторяю: value - для текстового содержимого поля, там должен быть текст, а не html разметка.

Вы на вопросы нормально ответьте: зачем вы пытаетесь засунуть html код в текстовое поле? чего хотете добиться? Ситилей или еще чего?
Откуда вообще этот HTML берется?
Покажите примеры того что должно в итоге получтся.


Код писал не я, просто адаптировал под себя, сам программист плохой.
Основной файл, часть кода
CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.  
  3. function(data){
  4.             $("select#char1").change(function(){
  5.             $("select#SN").html("<option>Ждите...</option>");
  6.             var vendor = $("select#vendor1 option:selected").attr('value');
  7.             var model = $("select#model1 option:selected").attr('value');
  8.             var body = $("select#body1 option:selected").attr('value');
  9.             var engine = $("select#engine1 option:selected").attr('value');
  10.             var charS = $("select#char1 option:selected").attr('value');
  11.             $.post("/podbor/resultSN.php", {vendor:vendor,model:model,body:body,engine:engine,charS:charS,table:table},
  12.              
  13.                 $("#SN").html(data);
  14.             });
  15. </script>

Далее

/podbor/resultSN.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include "select.class.php";
  3. $table = $_POST["table"];
  4. echo $opt->SN(($table));
  5. ?>

далее
select.class.php
PHP:
скопировать код в буфер обмена
  1. public function SN($table)
  2.         {
  3.             $vendor = $_POST["vendor"];
  4.             $vendor = htmlspecialchars(stripslashes($vendor));
  5.             $model = $_POST["model"];
  6.             $model = htmlspecialchars(stripslashes($model));
  7.             $body = $_POST["body"];
  8.             $body = htmlspecialchars(stripslashes($body));
  9.             $engine = $_POST["engine"];
  10.             $engine = htmlspecialchars(stripslashes($engine));
  11.             $charS = $_POST["charS"];
  12.             $charS = htmlspecialchars(stripslashes($charS));
  13.             $this->table = $table;
  14.             if ($table == "podbor_akb_l"){
  15.                 $sql = "SELECT  sn FROM $table WHERE vendor='".mysql_escape_string($vendor)."' AND model='".mysql_escape_string($model)."' AND body='".mysql_escape_string($body)."' AND engine='".mysql_escape_string($engine)."'";
  16.             } else {
  17.             $sql = "SELECT  sn FROM $table WHERE vendor='".mysql_escape_string($vendor)."' AND model='".mysql_escape_string($model)."' AND body='".mysql_escape_string($body)."' AND engine='".mysql_escape_string($engine)."' AND charS='".mysql_escape_string($charS)."'";
  18.                 }
  19.             $res = mysql_query($sql,$this->conn);
  20.             while($row = mysql_fetch_array($res))
  21.             {
  22.                 $SN .= '<option value="' . $row['sn'] . '">' . $row['sn'] . '</option>';
  23.             }
  24.             return $SN;
  25.         }


Если всю эту канетель можно просто перевести в функцию $SN, то будет еще лучше.
А вообще это модуль подбора, выбираешь кучу параметров и получаешь выввод в виде <div id="SN" name="SN"></div>
10. Ermite - 24 Октября, 2016 - 14:44:42 - перейти к сообщению
Пробовали то, что должно быть в name и id записать в переменные, а потом передать их в функции?
Что-то типа такого (может, я, конечно, что-то не так понял)

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.    function Test($id,$name) {
  4.            echo "<div id='$id' name='$name'></div>";
  5.    };
  6.    ?>
  7. <input class = "inputbox" style = "width: 250px" name = "search" id = "jshop_search" value = "<?php Test($id,$name)?>"/>
11. Sikiro1 - 27 Октября, 2016 - 20:20:10 - перейти к сообщению
Все спасибо, в итоге разобрался сам, правда времени потратил очень много.

PHP:
скопировать код в буфер обмена
  1.  
  2.                 $("#SN").html(data);
  3.                                 $('.inputbox').val(data);

в скрипте jquery

 

Powered by ExBB FM 1.0 RC1