Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP DOM生成的Ajax新输入字段_Javascript_Php_Html_Ajax - Fatal编程技术网

Javascript PHP DOM生成的Ajax新输入字段

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_"){

我是一名学习Ajax的学生,学习如何更改使用PHPDOM生成的输入字段的值。 下面是生成表行的代码

<?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();
});