Javascript PHP DOM生成的Ajax新输入字段
我是一名学习Ajax的学生,学习如何更改使用PHPDOM生成的输入字段的值。 下面是生成表行的代码Javascript PHP DOM生成的Ajax新输入字段,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我是一名学习Ajax的学生,学习如何更改使用PHPDOM生成的输入字段的值。 下面是生成表行的代码 <?php $totalval = 0; foreach($_SESSION as $name=>$value){ $total = 0; if(substr($name,0,5) == "item_"){
<?php
$totalval = 0;
foreach($_SESSION as $name=>$value){
$total = 0;
if(substr($name,0,5) == "item_"){
$id = substr($name,5,4);
$cart_xml= new DomDocument;
$cart_xml->Load('prod_db.xml');
$root=$cart_xml->getElementsByTagName('root')->item(0);
$product=$root->getElementsByTagName('product');
foreach($product as $prod){
$itms_id=$prod->getElementsByTagName('prod_id')->item(0)->nodeValue;
$itms_categ=$prod->getElementsByTagName('prod_categ')->item(0)->nodeValue;
$itms_imgsrc=$prod->getElementsByTagName('prod_imgsrc')->item(0)->nodeValue;
$itms_name=$prod->getElementsByTagName('prod_name')->item(0)->nodeValue;
$itms_price=$prod->getElementsByTagName('prod_price')->item(0)->nodeValue;
$itms_stock=$prod->getElementsByTagName('prod_stock')->item(0)->nodeValue;
if($id==$itms_id){
$price = floatval($itms_price);
$total=$price*$value;
?>
<tr>
<td><img src="<?php echo $itms_imgsrc?>" class="citemimg"/></td>
<td>
<p class="prodname"><?php echo ucfirst($itms_name);?></p>
<p class="prodcateg"><?php echo ucfirst($itms_categ)?></p>
<p class="prodprice"><?php echo "Php. ".number_format($itms_price,2)?></p>
</td>
<td class="cartAmount;">
<img onclick="ajaxMinus('<?php echo $itms_id;?>','<?php echo $itms_stock;?>')" class="carticons" src="images/logos/Minus_r_50px.png"/>
<input type="number" min="1" max="<?php echo $itms_stock;?>" class="cartqty" id="itmQty<?php echo $itms_id;?>" value="<?php echo $value; ?>" disabled>
<img onclick="ajaxAdd('<?php echo $itms_id;?>','<?php echo $itms_stock;?>')" class="carticons" src="images/logos/Add_r_50px.png"/>
</td>
<td><?php echo "Php. ".number_format($total,2);?></td>
<td>
<a href="cart_actionCart.php?del=<?php echo $itms_id;?>&maxval=<?php echo $itms_stock;?>">
<img class="carticons" src="images/logos/Remove_r_50px.png"/>
</a>
</td>
</tr>
<?php
}
}
$totalval+=$total;
}
}
?>
这是工作,但我的问题是输入值不会改变,直到我刷新页面,我的问题是什么?非常感谢您的帮助。通过AJAX加载的任何内容都不会有侦听器,除非父元素首先在那里 例如,我有一个表单HTML是通过AJAX实现的,datepicker无法工作,直到我改变了原来的代码:
$('.datepicker').datepicker();
为此:
$("body").on("focusin", ".datepicker", function(){
$(this).datepicker();
});
因为身体总是在那里,监听器现在可以工作了。这可能也是你的问题所在,因此我建议尝试让你的听众像上面那样适应。哦,好吧,你能给我更多类似的例子吗?这是jquery吗?我曾尝试向中添加单独的jquery函数,但它只会在主页面上输入侦听器代码而不是ajax加载页面上更改ai,而且您只需要在主页面上执行一次,但我很难理解jquery本身$(document).ready(function(){$(“#qtySubtract”).click(function(){$('.cartqty').load('.cartqty');});“我添加了类似这样的内容,您如何在纯javascript中添加一个onclick实例?这样做,只使它成为焦点您也在使用jQuery?”?
function ajaxAdd(id,maxqty){
if(window.XMLHttpRequest){
xhrAdd=new XMLHttpRequest();
}
else{
if(window.ActiveXObject){
try{
xhrAdd=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){}
}
}
if(xhrAdd){
xhrAdd.onreadystatechange=minusQty;
xhrAdd.open("GET","cart_actionCart.php?add="+id+"&maxval="+maxqty,true);
xhrAdd.send();
}
else{
alert("Couldn't create an XMLHttpRequest");
}
}
function minusQty(){
if(xhrAdd.readyState == 4 && xhrMinus.staus == 200){
document.getElementById('itmQty'+id).value = xhrAdd.responseText;
}
}
$('.datepicker').datepicker();
$("body").on("focusin", ".datepicker", function(){
$(this).datepicker();
});