我正在编写一个程序,我需要在脚本
中添加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");
}
});
有什么想法吗?
答案 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
});