PHP函数忽略if语句

由于一个代理商想要他的网站url上我一个月前工作的function,我最终不得不做一些小的改动。 我有两个函数PHP页面运行一个非常相似的脚本,但我不得不根据两个值集创建两个。 他们用AJAX回显到页面上的内容完全一样,这就是它有点奇怪……

我做的第一个脚本是成功的,但是我需要创建一个if elseif else语句,这样每个代理都没有一个不在哪里的链接。 在摆弄这个声明之后,我能够让一个代理人在那里拥有他的网站URL。 一旦我做完了,我就会觉得它会从那里顺利航行……那不是……

我对它们的两个脚本使用完全相同的语句,只有一个有效。 唯一与它们不同的是它接收的价值,我使用JavaScript + AJAX作为第一个(哪个有效),然后决定学习jQuery + AJAX来完成下一个。 在此之前,他们都工作,除了使用JavaScript / jQuery(这是相同的语言)之外,它是两者的确切代码,一个使用GET而另一个使用POST

在函数运行时,我也没有任何错误或任何错误。 代理商的名字是Sam Fiorentino,这是唯一一个拥有网站url的人。 我进入了第二次搜索的控制台,单选按钮,它显示了锚标记之外的公司名称,这是问题的根源。 为什么一个显示正确而另一个没有?

第一个PHP (作品)

 while ($stmt->fetch()) { // Gets results from the database echo "
" . "" . "". $First_Name . " " . $Last_Name . " " . $Suffix . "" . "" . "" . "" . "" ."
"; if ($Company == NULL) { echo "

"; } elseif ($Website == NULL) { echo "

" . "" .$Company . "" . "
"; } else { echo "

" . "" . "" .$Company . "" . "" . "
"; }

第二个PHP (不起作用)

 while ($stmt->fetch()) { // Gets results from the database echo "
" . "" . "".$First_Name . " " .$Last_Name . " " . $Suffix . "" . "" . "" . "" . "" ."
"; if ($Company == NULL) { echo "

"; } elseif ($Website == NULL) { echo "

" . "" .$Company . "" . "
"; } else { echo "

" . "" . "" .$Company . "" . "" . "
"; }

SQL + Binded代码 (第一个/工作一个)

 $sql="SELECT First_Name, Last_Name, Suffix, Email, Company, WorkAddress1, WorkCity, WorkStateProvince, WorkZipCode, Work_Phone, Fax, Ancillary, SmallGroup, IndividualPlans, LongTermCare, Medicare, LargeGroup, TPASelfInsured, CertifiedForPPACA, Website FROM `roster` WHERE Last_Name = '".$q."' OR Company = '".$q."' OR WorkCity = '".$q."' OR WorkZipCode = '".$q."' ORDER BY Last_Name ASC"; if(!$stmt = $con->Prepare($sql)) { die; }else{ $stmt->execute(); $stmt->store_result(); $stmt->bind_result($First_Name, $Last_Name, $Suffix, $Email, $Company, $WorkAddress1, $WorkCity, $WorkStateProvince, $WorkZipCode, $Work_Phone, $Fax, $Ancillary, $SmallGroup, $IndividualPlans, $LongTermCare, $Medicare, $LargeGroup, $TPASelfInsured, $CertifiedForPPACA, $Website); $rows = $stmt->num_rows; 

SQL + Binded代码 (不工作)

 $poststr = $_POST['expertise']; //get our post data if(count($poststr) > 1){ //count to make sure we have an array $expertise = implode(" AND ",$_POST['expertise']); //implode the array using AND as glue } else{ //otherwise if it is only one no need for implode $expertise = implode("",array($poststr)); } //here is our string for prepared statement $sql = "SELECT First_Name, Last_Name, Suffix, Email, Company, WorkAddress1, WorkCity, WorkStateProvince, WorkZipCode, Work_Phone, Fax, Ancillary, SmallGroup, IndividualPlans, LongTermCare, Medicare, LargeGroup, TPASelfInsured, CertifiedForPPACA, Website FROM roster WHERE ".$expertise." = 1 ORDER BY Last_Name ASC"; if(!$stmt = $con->Prepare($sql)) { die; }else{ $stmt->execute(); $stmt->store_result(); $stmt->bind_result($First_Name, $Last_Name, $Suffix, $Email, $Company, $WorkAddress1, $WorkCity, $WorkStateProvince, $WorkZipCode, $Work_Phone, $Fax, $Ancillary, $SmallGroup, $IndividualPlans, $LongTermCare, $Medicare, $LargeGroup, $TPASelfInsured, $CertifiedForPPACA, $Website); $rows = $stmt->num_rows; 

Javascript + AJAX (第一个/工作一个)

  function showUser(str) { if (str=="") { document.getElementById("bodyA").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("bodyA").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","process.php?q="+str,true); xmlhttp.send(); }  

jQuery + AJAX (第二个/不工作)

 $('input').on('click', function() { //Pulls data based on radial input var value = $(this).val(); $.ajax({ type: 'POST', datatype: "html", data: { expertise: value }, url: "expertise.php", success: function (data) { $('#bodyA').html(data); } }); }); 

任何的想法? 非常感谢所有帮助,如果您需要更多代码,请告诉我们!

这也是我唯一一次使用PHP这么光顾我!

实时网站

 "" 

这是您的问题:您的url周围没有引号。 它输出如下:

 Company 

你需要添加这样的引号:

 "" 

url看起来像这样!

 Sam Fiorentino & Associates 

它需要报价。 URL中的结尾/结束


第一个工作但第二个工作的原因不是:

innerHTML让浏览器解释html。 $(...)由jQuery解释,它为浏览器兼容性做了一些奇特的事情,但有时也有缺点。 有些浏览器会尝试修复错误的标记,有时候浏览器会做坏事。 jQuery使它们大多数都是一样的。

请参阅此jsfiddle进行比较: http : //jsfiddle.net/Rk7SQ/

 

Browser rendering:

Sam Fiorentino & Associates

jQuery rendering:

$(function() { $('#jqrender').html("Sam Fiorentino & Associates"); });

你可以看到他们是不同的。