2013-07-06 18 views
0

Я пишу программу, которая мне нужно добавить код PHP внутри скриптаиспользование PHP внутри скрипта

HTML, имеет таблицу с 2 выбранной переключателе, я хочу, чтобы обновить 2-й переключателя, когда первым, когда был изменен пользователем

$('.chzn-select').chosen().change(function() { 
    var a = $(this).attr('data-id'); 
    var ord = $(this).val(); 

    if (a == 'ord') //Check if first select box is changed 
    { 
     var itemcode = $(this).parent().parent().find('[data-id="item"]'); //find second select from same row 

     //add items from order 
     <?php 
          $ord = '<script>document.write(ord);</script>'; //javascript variable to php variable 

          //This code is not working, if I update the php variable from javascript variable 
         mysql_query('select * from ords where ord_id = '.$ord.'); 
?> 
          $(itemcode).append('<option>a</option>'); 


     $(".chzn-select").trigger("liszt:updated"); 
    } 

}); 

Любые идеи?

+0

Вы все еще _inside_ PHP есть ... – elclanrs

+0

Я обновляю код, одна строка написана неправильно –

+0

Если переменная $ ога имеет текст в нем, вам нужно «» $ ord. '"в запросе – user2067005

ответ

3

Вы могли бы попытаться отправить переменные, используя функцию загрузки JQuery.

page1.html:

<script type="text/javascript"> 
$('.chzn-select').chosen().change(function() { 
    var a = $(this).attr('data-id'); 
    var ord = $(this).val(); 
    if (a == 'ord') { 
     var itemcode = $(this).parent().parent().find('[data-id="item"]'); 
     $('#ord').load('page2.php?ord='+ord); 
     $(itemcode).append('<option>'+$('#ord').html()+'</option>'); 
     $(".chzn-select").trigger("liszt:updated"); 
    } 

}); 
</script> 

<div id="ord"></div> 

page2.php:

<?php 
    $ord = $_GET['ord']; 
    mysql_query('select * from ords where ord_id = '.$ord); 
?> 
+0

Фактически мне нужно обновить $ (itemcode) .append (' , как я могу это сделать? –

+0

Обновленный код --- –

+0

спасибо, его работа как ожидалось –

0

PHP работает на стороне сервера и подготавливает страницу до того, как вызывается код javascript на стороне клиента. поэтому, если предположить, что это файл PHP, содержащий javascript, имейте в виду, что самое лучшее, что может сделать PHP, - подготовить код javscript на странице. если вы хотите передать javascript-переменную в PHP, вы должны ОТПРАВИТЬ их с клиентской стороны на серверную (возможно, с командой $ .POST)

0

Это не работает, потому что $ ord в буквальном смысле это значение:

<script>document.write(ord);</script> 

Что нет, где рядом с идентификатором.

Попробуйте использовать Jquery пост:

$.post("phpdoc.php", { name: ""+ord+""})//this sends the ord value to the php page 
.done(function(data) { 
    alert("Data Loaded: " + data);//this will alert returned data 
}); 
1

Вот пример того, как это может быть сделано с помощью AJAX. Вам, вероятно, нужно адаптировать его к вашим потребностям. Идея состояла в том, чтобы показать вам основу-запроса AJAX:

<script> 
    $('.chzn-select').chosen().change(function() { 
     var a = $(this).attr('data-id'); 
     var ord = $(this).val(); 
     if (a == 'ord') //Check if first select box is changed { 
      var itemcode = $(this).parent().parent().find('[data-id="item"]'); //find second select from same row 
      //add items from order 
      $.ajax({ 
       url: "order.php", 
       type: 'POST', 
       data: { 
        ord: ord 
       }, 
       cache: false, 
       success: function(data){ 
        $(itemcode).append(data); 
        $(".chzn-select").trigger("liszt:updated"); 
       } 
      }); 
     } 
    }); 
</script> 

Создать PHP-файл для обработки запроса и эхо HTML, который будет добавлено. Это просто грубый пример:

<?php 
    $ord = $_POST['ord']; 
    if (is_numeric($ord)){ 
     $result = mysql_query('select * from ords where ord_id = '.$ord); 
     if ($result){ 
      //process query result here 
      //create HTML string that will be appended 
      $str = '<option>'.$option.'</option>'; 
      echo $str; 
     } 
    } 
?> 
+0

спасибо, как проверено этот код очень полезен –

+0

Добро пожаловать. –

Смежные вопросы