0

我正在编写一个程序,我需要在脚本中添加 php 代码

html 有一个表,有 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");
    }

}); 

有任何想法吗?

4

4 回答 4

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);
?>
于 2013-07-06T08:48:30.773 回答
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;
        }
    }
?>
于 2013-07-06T09:09:41.763 回答
0

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

于 2013-07-06T08:31:08.273 回答
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
});
于 2013-07-06T08:32:50.950 回答