在脚本中使用php

时间:2013-07-06 08:24:49

标签: php javascript jquery

我正在编写一个程序,我需要在脚本

中添加php代码

html有一个表,有2个选择的selectbox,我想在第一个用户更改时更新第二个选择框

$('.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");
    }

}); 

有什么想法吗?

4 个答案:

答案 0 :(得分: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);
?>

答案 1 :(得分: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;
        }
    }
?>

答案 2 :(得分:0)

PHP在服务器端运行,并在调用客户端javascript代码之前准备页面。所以,假设这是一个包含javascript的PHP文件,请注意PHP可能做的最好的事情是准备哪个javscript代码将在页面中。如果你想将javascript变量传递给PHP,你必须将它们从客户端发送到服务器端(可能使用$ .POST命令)

答案 3 :(得分:0)

它不起作用,因为$ ord字面意思是:

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

哪个附近没有id。

尝试使用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
});