当用户首次打开表单时,它是空白的,他们可以输入ID =“siteID”值或ID =“sitename”值,然后按“RetrIEve”按钮以从MysqL请求存储网站的其余部分详细信息数据库并显示在表单中.
如果用户想要更改/更新任何详细信息,可以使用相同的表单进行更改/更新,然后单击“更新详细信息”按钮将网站的详细信息推送回数据库.
到目前为止,一切都有些好.但是,在成功显示网站的详细信息后(在从数据库中检索到网站的详细信息之后)单击“更新详细信息”按钮时,单选按钮表示的任何布尔数据都会返回,在数组上使用print_r进行观察.当前价值.
对于每个单选按钮,PHP条件与HTML内联使用,以确定在从数据库检索数据后应检查每个行/字段的哪个单选按钮.这可能就是为什么当按下更新按钮而不是先前确定的布尔值时,表单以某种方式为所有单选按钮设置on值?
如果是这样,可能会有什么问题,因为我需要通过条件检查需要检查任何给定集合的单选按钮?
HTML.PHP页面的片段:
} // close isset IF?> <h1 ID="heading">Cell Site Details</h1> <!--fIEldset ID="Site:"--> <!--legend>Site:</legend--> <div ID="formContentdiv"> <form ID="formContent" action="#" method="post" accept-charset="utf-8"> <input type="hIDden" name="submitted" value="true"> <div ID="clearPagediv"> <a href="index2.PHP"> <input type="button" ID="buttonClear" name="clearPage" value="Clear Page"> </a> </div><!-- closes clearPagediv --> <div ID="retreivediv"> <input type="submit" ID="buttonRetreive" name="retreive" value="Retreive"> </div><!-- closes retreivediv --> <div ID="updatediv"> <input type="submit" ID="buttonUpdate" name="update" value="Update Details"> </div><!-- closes updatediv --> <div > <label> <span>Site ID:</span> <input type="text" ID="siteID" name="siteID" maxlength="" $value=""> <script> siteID.value = <?PHP echo Json_encode( ucfirst( $siteID ) ); ?>; </script> </label> </div> <div > <label> <span>Site name:</span> <input type="text" ID="sitename" name="sitename" maxlength="" $value="test"> <!--input type="submit" value="Retreive"--> <script> sitename.value = <?PHP echo Json_encode( ucwords( $sitename ) ); ?>; </script> </label> </div> <div > <label> <span># HSPA BBUs:</span> <input type="text" ID="numHspaBbu" name="numHspaBbu" maxlength="" $value=""> <script> numHspaBbu.value = <?PHP echo Json_encode( $numHspaBbu ); ?>; </script> </label> </div> <div > <label> <span># LTE BBUs:</span> <input type="text" ID="numLteBbu" name="numLteBbu" maxlength="" $value=""> <script> numLteBbu.value = <?PHP echo Json_encode( $numLteBbu ); ?>; </script> </label> </div> <div > <label><span>Ext. Alarm Terminations:</span></label> <label> <input type="radio" name="extAlarmsTerminated" <?PHP if ( $extAlarmsTerminated == "hspa" ) { echo 'checked'; } ?> > <span>HSPA</span> </label> <label> <input type="radio" name="extAlarmsTerminated" <?PHP if ( $extAlarmsTerminated == "lte" ) { echo 'checked'; } ?> > <span>LTE</span> </label> <label> <input type="radio" name="extAlarmsTerminated" <?PHP if ( $extAlarmsTerminated == "hspa-lte" ) { echo 'checked'; } ?> > <span>HSPA-and-LTE</span> </label> </label> </div><!-- close formRowdiv -->
var $extAlarmsTerminated是以下网站详细信息数组中的一个这样的单选按钮组:
$inputVals = array( $siteID,$sitename,$numHspaBbu,$numLteBbu,$extAlarmsTerminated ); print_r( $inputVals );
print_r输出首先显示,用户按下RetrIEval按钮后显示的布尔单选按钮值:
Array ( [0] => P6969 [1] => Toledo Centre [2] => 1 [3] => 1 [4] => hspa-lte
print_r输出显示用户按下“更新详细信息”按钮后相同站点详细信息的单选按钮值:
Array ( [0] => P6969 [1] => Toledo Centre [2] => 1 [3] => 1 [4] => on )
编辑:
我将从DB中检索到的每个字段输入值分配给PHP $_SESSION var,并且当单击“更新详细信息”按钮时,将引用$_SESSION变量,这解决了正在分配单选按钮的原始问题.
但我仍然无法保存用户可能进行的细节更改.我已经研究过Js / AJAX作为实现这个目标的可能方法,但是我知道的那个Js很少让我更加危险.以下是我能够拼凑阅读多个类似问题的内容:
<div > <label> <span>Site name:</span> <input type="text" ID="sitename" name="sitename" maxlength="" $value="test"> <script> sitename.value = <?PHP echo Json_encode( ucwords( $sitename ) ); ?>; </script> </label> </div> <script> $( document ).ready( function() { $( "#sitename" ).on( 'change',function() { var sitename = document.getElementByID( 'sitename' ).value; $.AJAX ({ url: 'AJAX.PHP',data: { sitename : sitename },success: function( result ) { alert( 'Site name value changed to: ' + sitename ); } }); }); }); </script>
好消息是,当其字段输入值被更改时,我得到Js警报回显$sitename的更改值.我创建了在同一个dir中引用的AJAX.PHP文件,它包含:
<?PHP echo ( $_GET[ 'sitename' ] );?>
我以为我可以通过以下方式访问此更改的$sitename值:
$sitename = $_GET[ 'sitename' ];
但显然不是.确实有一种方法可以访问这个已更改的PHP var,我认为它现在必须存储在AJAX.PHP中吗?
解决方法 尝试为每个输入复选框分配一个value =属性,例如,您的代码将是:<input type="radio" name="extAlarmsTerminated" value='HSPA' ...<input type="radio" name="extAlarmsTerminated" value='lte' ...<input type="radio" name="extAlarmsTerminated" value='HSPA-lte'
结果:print_r($_ POST)输出:
数组([提交] => true [更新] =>更新详情[siteID] => P6969 [sitename] =>托莱多中心[numHspaBbu] => 1 [numLteBbu] => 1 [extAlarmsTerminated] = > HSPA-lte)
I thought I Could then get access to this changed $sitename value with something like:
$sitename = $_GET[ ‘sitename’ ];
But apparently not.
Is there indeed a way to access this changed PHP var that I think must be Now stored in AJAX.PHP?
首先,你使用POST而不是GET方法,所以你应该寻找$_POST [‘sitename’]
其次,如果您要确保传递正确的值,请在表单中更改此内容< form ID =“formContent”action =“#”method =“post”... 通过
< form ID =“formContent”action =“test.PHP”method =“post”...
test.PHP包含:
< PHP echo($_POST [‘sitename’]);?>
总结以上是内存溢出为你收集整理的html.php表单将布尔单选按钮值呈现为“on”全部内容,希望文章能够帮你解决html.php表单将布尔单选按钮值呈现为“on”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)