【发布时间】:2020-06-08 19:00:38
【问题描述】:
我无法在 php 字段中显示 PHP/JSON 数组的结果。
感兴趣的值是数字 9...'ptm:yes/no'。这取决于数据库中的字段是否为空。这显然是有效的,因为返回了正确的数据。
但是我无法让它以基于 php 的形式显示。项目编号 3
<tr>
<td>
<span class="qText" name="was_PMV"> 3. Did file start as a PMV?</span>
</td>
<td>
<select class="qAns" name="was_PMV_a">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
</td>
</tr>
还有 javascript:
function setOther(data){
var jdata=JSON.parse(data);
document.getElementsByName("date_of_incident_a")[0].value=jdata.doi;
document.getElementsByName("date_of_incident_s")[0].innerHTML=jdata.doi;
document.getElementsByName("transfer_to_lit_a")[0].value=jdata.ttl;
document.getElementsByName("transfer_to_lit_s")[0].innerHTML=jdata.ttl;
document.getElementsByName("filed_suit_a")[0].value=jdata.fsd;
document.getElementsByName("filed_suit_s")[0].innerHTML=jdata.fsd;
document.getElementsByName("phase_assigned_a")[0].value=jdata.pa;
document.getElementsByName("phase_assigned_s")[0].innerHTML=jdata.pa;
alert ("value to set is : " + jdata.ptm);
$("[name='was_PMV_a')").val(jdata.ptm);
document.getElementsByName("was_PMV_s")[0].innerHTML=jdata.ptm;
document.getElementsByName("trial_date_a")[0].value=jdata.td;
document.getElementsByName("trial_date_s")[0].innerHTML=jdata.td;
document.getElementsByName("ALocation_a")[0].value=jdata.al;
document.getElementsByName("settlement_t4")[0].value=Math.round(jdata.sto);
formatValue('4');
我有一种感觉,recoveryForm.php 上的断开连接...这需要是一个下拉菜单吗?在表单上显示 jdata.ptm 的返回值(是/否)的最简单方法是什么?
无论我做什么,表单上的值都显示为“否”...我认为这必须是对表单的简单修复?
编辑 - 我相信我已将我的问题与我的 getOther.php 文件隔离开来,有人看到任何差异吗?
<?php
$success=FALSE;
$postCasenum = getPostCasenum();
#header('Content-Type: application/json');
$sql = "select cases.date_of_incident, cases.case_date_9, cases.case_date_3, user_tab6_data.Trial_Phase, cases.case_date_5, user_case_data.ALocation, cases.staff_1, cases.staff_8, user_case_data.PMV_to_MVA, ";
$sql=$sql."(select sum(insurance.actual) from insurance where case_num=cases.casenum) as sumTotal ";
$sql=$sql."from cases LEFT JOIN user_tab6_data ON cases.casenum=user_tab6_data.case_id ";
$sql=$sql."LEFT JOIN user_case_data ON cases.casenum=user_case_data.casenum ";
$sql=$sql."WHERE cases.casenum=?";
$conn = odbc_connect( "needles","dba","sql" );
if( $conn ) {
#echo $sql;
$stmt=odbc_prepare($conn, $sql);
$queryResult=odbc_execute($stmt, array($postCasenum));
if (odbc_fetch_row($stmt)) {
$data = [
'doi' => odbc_result($stmt,1),
'ttl' => odbc_result($stmt,2),
'fsd' => odbc_result($stmt,3),
'pa' => odbc_result($stmt,4),
'td' => odbc_result($stmt,5),
'al' => prepString(odbc_result($stmt,6)),
'sl' => odbc_result($stmt,7),
's8' => odbc_result($stmt,8),
'ptm' => empty(odbc_result($stmt,9)) ? "No" : "Yes",
'sto' => odbc_result($stmt,10)
];
echo json_encode($data);
}
// while(odbc_fetch_row($stmt)){
// $json=$json.'"doi":"'.odbc_result($stmt,1).'",';
// $json=$json.'"ttl":"'.odbc_result($stmt,2).'",';
// $json=$json.'"fsd":"'.odbc_result($stmt,3).'",';
// $json=$json.'"pa":"'.odbc_result($stmt,4).'",';
// $json=$json.'"td":"'.odbc_result($stmt,5).'",';
// $json=$json.'"al":"'.prepString(odbc_result($stmt,6)).'",';
// $json=$json.'"s1":"'.odbc_result($stmt,7).'",';
// $json=$json.'"s8":"'.odbc_result($stmt,8).'",';
// $json=$json.'"ptm":"'.odbc_result($stmt,9).'",';
// $json=$json.'"sto":"'.odbc_result($stmt,10).'"';
// }
// $json=$json.'}';
// echo $json;
#echo "you found me!";
odbc_close( $conn );
} else {
echo "{}";
}
?>
<?php
function getPostCasenum(){
return $_POST["casenum"];
}
function prepString($myStr){
$ret=str_replace('"',"",$myStr);
return $ret;
}
?>
【问题讨论】:
-
试试
document.getElementsByName("was_PMV_s")[0].value = jdata.ptm; -
不走运,谢谢。以前,ptm 项的 document.getElementsByName 与所有其他项都遵循套件,但已被其他人的建议更改......无论哪种方式都不起作用。
-
这里有语法错误,请先修复这个问题:
$("[name='was_PMV_a')").val...应该是$("[name='was_PMV_a']").val
标签: javascript php jquery json