Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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在HTML中工作正常,但在PHP中工作不正常_Php_Javascript_Html_Heredoc - Fatal编程技术网

Javascript在HTML中工作正常,但在PHP中工作不正常

Javascript在HTML中工作正常,但在PHP中工作不正常,php,javascript,html,heredoc,Php,Javascript,Html,Heredoc,我是php的主要新手,我可能在这里吃得太多了。话虽如此,我面临着以下问题:我已经使用HTML创建了一个表单,只需单击一个按钮,就可以使用javascript动态生成额外的响应行。它作为一个独立的html文档工作得很好,但是,当我尝试使用herdoc将其放入php函数时,按钮不会添加任何行。请参阅下面的代码 提前感谢您的任何见解 function upsmart_create_profile_form() { global $wpdb; $data = $wpdb->get_

我是php的主要新手,我可能在这里吃得太多了。话虽如此,我面临着以下问题:我已经使用HTML创建了一个表单,只需单击一个按钮,就可以使用javascript动态生成额外的响应行。它作为一个独立的html文档工作得很好,但是,当我尝试使用herdoc将其放入php函数时,按钮不会添加任何行。请参阅下面的代码

提前感谢您的任何见解

function upsmart_create_profile_form() {
    global $wpdb;
    $data = $wpdb->get_row($wpdb->prepare("SELECT * FROM upsmart_profile WHERE wordpress_id=%d",get_current_user_id()),ARRAY_A);

    $media_url = admin_url("media-upload.php?type=image&TB_iframe=true");

    $out = <<<EOHTML
    <form method='post' enctype='multipart/form-data'>
<h4>Branding</h4>
<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery("#logo_upload").click(function() {
            tb_show("", "{$media_url}");
            window.send_to_editor = function(html) {
                imgurl = jQuery("img",html).attr("src");
                jQuery("#logo_field").val(imgurl);
                tb_remove();
            }
            return false;
        });

        jQuery("#media1_upload").click(function() {
            tb_show("", "{$media_url}");
            window.send_to_editor = function(html) {
                imgurl = jQuery("img",html).attr("src");
                jQuery("#media1_field").val(imgurl);
                tb_remove();
            }
            return false;
        });

        jQuery("#media2_upload").click(function() {
            tb_show("", "{$media_url}");
            window.send_to_editor = function(html) {
                imgurl = jQuery("img",html).attr("src");
                jQuery("#media2_field").val(imgurl);
                tb_remove();
            }
            return false;
        });
    });
</script>
<table>
    <tr><th>Logo</th><td><input type='text' id="logo_field" value="{$data['logo']}" name='logo'/>
    <input type='button' id='logo_upload' value='Open Media Library'/></tr>
    <tr><td colspan='2'>Sometext&mdash;moretext.</td></tr>

    <tr><th><br/>Media</th></tr>
    <tr><td colspan='2'>Now upload the "coolest" piece of media you have. This will be used on the top fold of your generated site to draw users in.
    <br/>
    <input type='text' id="media1_field" value="{$data['media1']}" name='media1'/>
    <input type='button' id='media1_upload' value='Open Media Library'/>
    <tr><td colspan='2'>While you're at it, give us the second coolest piece of media you have as well. Who knows when you might need it?
    <br/>
    <input type='text' id="media2_field" value="{$data['media2']}" name='media2'/>
    <input type='button' id='media2_upload' value='Open Media Library'/>
    </td></tr>
    <tr><td colspan='2'><br/>
    <ul><li>The bigger the better&mdash;don't worry, we'll scale these down for you.</li><li>The uploaded files should have solid backgrounds.</li></ul><br/></td></tr>
</table>
<h4>About</h4>
<table>
    <tr><th colspan='2'>Mission Statement</th></tr>
    <tr><td colspan='2'>Your mission statement should include ...</td></tr>
    <tr><td colspan='2'>
EOHTML;
$out .= upsmart_get_editor($data['mission'],'mission');
$out .= <<<EOHTML
    </td></tr>

    <tr><th colspan='2'>"About Us"</th></tr>
    <tr><td colspan='2'>A good "About Us" writeup should answer the following questions: <ul><li>Who are you?</li><li>What are you doing?</li><li>Why is what you're doing awesome?</li></ul></td></tr>
    <tr><td colspan='2'>
EOHTML;
$out .= upsmart_get_editor($data['about'],'about');
$out .= <<<EOHTML
    </td></tr>

    <tr><th colspan='2'>Company History</th></tr>
    <tr><td colspan='2'>Let us know your background. Some things to think about: ...</td></tr>
    <tr><td colspan='2'>
EOHTML;
$out .= upsmart_get_editor($data['history'],'history');
$out .= <<<EOHTML
    </td></tr>
</table>

    </table>

<h3>Company Milestones</h3>
<p>Below, share any milestone achievements of your company.  These could be first-hires, funding that you've received, revenue achievements, or anything else.</p>
    <SCRIPT language="javascript">
        function addRow(tableID) {

           var table = document.getElementById(tableID);

            var rowCount = table.rows.length;
            var row = table.insertRow(rowCount);

            var cell1 = row.insertCell(0);
            var element1 = document.createElement("input");
            element1.type = "checkbox";
            element1.name="chkbox[]";
            cell1.appendChild(element1);

            var cell2 = row.insertCell(1);
            cell2.innerHTML = rowCount + 1;

           var cell3 = row.insertCell(2);
            var element2 = document.createElement("input");
            element2.type = "text";
            element2.name = "txtbox[]";
            cell3.appendChild(element2);


        }

        function deleteRow(tableID) {
            try {
            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;

            for(var i=0; i<rowCount; i++) {
                var row = table.rows[i];
                var chkbox = row.cells[0].childNodes[0];
                if(null != chkbox && true == chkbox.checked) {
                    table.deleteRow(i);
                    rowCount--;
                    i--;
                }


           }
            }catch(e) {
                alert(e);
            }
        }

    </SCRIPT>

    <INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />

    <INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />


    <TABLE id="dataTable" width="350px" border="1">
        <TR>
            <TD><INPUT type="checkbox" name="chk[]"/></TD>
            <TD>
        <select name="month[]">
            <option value="1">January</option>
            <option value="2">February</option>
            <option value="3">March</option>
            <option value="4">April</option>
            <option value="5">May</option>
            <option value="6">June</option>
            <option value="7">July</option>
            <option value="8">August</option>
            <option value="9">September</option>
            <option value="10">October</option>
            <option value="11">November</option>
            <option value="12">December</option>
        </select>
        <select name="day[]">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
            <option value="13">13</option>
            <option value="14">14</option>
            <option value="15">15</option>
            <option value="16">16</option>
            <option value="17">17</option>
            <option value="18">18</option>
            <option value="19">19</option>
            <option value="20">20</option>
            <option value="21">21</option>
            <option value="22">22</option>
            <option value="23">23</option>
            <option value="24">24</option>
            <option value="25">25</option>
            <option value="26">26</option>
            <option value="27">27</option>
            <option value="28">28</option>
            <option value="29">29</option>
            <option value="30">30</option>
            <option value="31">31</option>
        </select>
        <select name="year[]">
            <option value="2013">2013</option>
            <option value="2012">2012</option>
            <option value="2011">2011</option>
            <option value="2010">2010</option>
            <option value="2009">2009</option>
            <option value="2008">2008</option>
            <option value="2007">2007</option>
            <option value="2006">2006</option>
            <option value="2005">2005</option>
            <option value="2004">2004</option>
            <option value="2003">2003</option>
            <option value="2002">2002</option>
            <option value="2001">2001</option>
            <option value="2000">2000</option>
            <option value="1999">1999</option>
            <option value="1998">1998</option>
            <option value="1997">1997</option>
            <option value="1996">1996</option>
            <option value="1995">1995</option>
            <option value="1994">1994</option>
            <option value="1992">1992</option>
            <option value="1991">1991</option>
            <option value="1990">1990</option>
        </select>
        </TD>
            <TD> <INPUT type="text" name="txt[]"/> </TD>
        </TR>
    <tr><th colspan='2'><input type='submit' value='Save'/></th></tr>
    </TABLE>
    </form>
EOHTML;
    return $out;
}
函数upsmart\u create\u profile\u form(){
全球$wpdb;
$data=$wpdb->get_row($wpdb->prepare(“从upsmart_profile中选择*,其中wordpress_id=%d”,get_current_user_id()),数组A);
$media\u url=admin\u url(“media upload.php?type=image&;TB\u iframe=true”);

$out=使用herdeoc时,确保herdeoc行结尾前面没有空格

例如:

<?php
$myStr = <<< ENDL
  Hello, World!
ENDL; // No white space in front of me!
?>


好的,所以我用Spudley的一些建议解决了这个问题。我遇到了一种情况,html在javascript中呈现为&&这是由于wordpress的一个怪癖以及它对XHTML的使用。我尝试了使用他们的建议,但他们没有一个为我这样做。最后我只创建了一个单独的javascript文件和reference你的php代码是什么样子的?也许我忽略了它,但我在提供的代码中没有看到任何heredoc语句?我也没有看到任何php。我注意到你没有关闭HTML中的
选项
标记。这可能会导致问题,尽管大多数浏览器可能会为你修复它。多亏了t我修复了html中的选项标记,虽然我的浏览器似乎因为我的语法不严谨而有所松懈,但问题仍然存在。关于关于关于Herdeoc的问题和php代码的外观,我将编辑文章以提供更多的上下文。谢谢!最终的输出是什么样子的比如?浏览器不关心服务器上的代码是PHP还是纯HTML;浏览器关心的只是它看到的已完成生成的HTML代码。如果它作为纯HTML工作,但不是从PHP代码工作,那么您需要查看PHP生成的HTML输出,并将其与工作内容进行比较。查看浏览器控制台中的任何JS错误ors.@Spudley谢谢你的建议,我想这会让我有所收获。浏览器控制台的输出是:“ReferenceError:deleteRow未定义”我不确定为什么会发生这种情况。B:谢谢你的建议,我已经检查过了(正如另一篇堆栈溢出帖子所建议的),发现没有问题。