Функция PHP игнорирует оператор if

Из-за того, что один агент хотел, чтобы его URL-адрес веб-сайта о функциях, которые я работал месяц назад, мне пришлось внести некоторые незначительные изменения. У меня есть две функциональные PHP-страницы, которые запускают очень похожий скрипт, но мне пришлось сделать два набора из двух наборов значений. То, что они эхо на странице с AJAX, точно такое же, и это то, где он становится немного странным …

Первый скрипт, который я сделал, был успешным, но мне нужно было сделать if elseif else поэтому у каждого агента не было ссылки, которая не была там. После возиться с этим заявлением я смог получить только одного агента, чтобы там был URL его веб-сайта. Как только я это сделал, у меня сложилось впечатление, что оттуда будет плавно сглаживаться … не было …

Я использовал то же самое утверждение для обоих своих скриптов, и только одно работает. Единственное, что отличается от них, – это то, какую ценность он получает, и что я использую JavaScript + AJAX для первого (что работает), а затем решил изучить jQuery + AJAX, чтобы сделать следующий. До этого все они работали, и это точный код для обоих, кроме использования JavaScript / jQuery (который является одним и тем же языком), и один использует GET а другой использует POST

Я также не получаю никаких ошибок или ничего, пока функция работает. Имя агента – Сэм Фиорентино, единственное, у кого есть URL-адрес веб-сайта. Я вошел в консоль для второго поиска, переключателей, и он показывает название компании за пределами привязанного тега, который является корнем проблемы. Зачем правильно отображать его, а другой нет?

Первый PHP (Works)

 while ($stmt->fetch()) { // Gets results from the database echo "<div class='agentcon'>" . "<span class='agentn'>" . "<strong>". $First_Name . "&nbsp;" . $Last_Name . "&nbsp;" . $Suffix . "</strong>" . "</span>" . "<a href=mailto:".$Email . ">" . "<span class='email'>" . "Send an e-mail to" . "&nbsp;" . $First_Name . "</span>" . "</a>" ."<div class='floathr'></div>"; if ($Company == NULL) { echo "<p>"; } elseif ($Website == NULL) { echo "<p>" . "<strong>" .$Company . "</strong>" . "<br>"; } else { echo "<p>" . "<strong>" . "<a target='blank' href=" .$Website . ">" .$Company . "</a>" . "</strong>" . "<br>"; } 

Второй PHP (не работает)

 while ($stmt->fetch()) { // Gets results from the database echo "<div class='agentcon'>" . "<span class='agentn'>" . "<strong>".$First_Name . "&nbsp;" .$Last_Name . "&nbsp;" . $Suffix . "</strong>" . "</span>" . "<a href=mailto:".$Email . ">" . "<span class='email'>" . "Send an e-mail to" . "&nbsp;" .$First_Name . "</span>" . "</a>" ."<div class='floathr'></div>"; if ($Company == NULL) { echo "<p>"; } elseif ($Website == NULL) { echo "<p>" . "<strong>" .$Company . "</strong>" . "<br>"; } else { echo "<p>" . "<strong>" . "<a target='blank' href=" .$Website . ">" .$Company . "</a>" . "</strong>" . "<br>"; } 

SQL + Связанный код (первый / рабочий)

 $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 + Связанный код (не работает)

 $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 (первый / рабочий)

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

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 так голый со мной!

Живой сайт

 "<a target='blank' href=" .$Website . ">" 

Это ваша проблема: у вас нет котировок вокруг вашего URL. Он выводится следующим образом:

 <a href=http://whatever.com/path>Company</a> 

Вам нужно добавить такие цитаты:

 "<a target='blank' href='" .$Website . "'>" 

URL-адрес выглядит так!

 <a target='blank' href=http://www.samfiorentino.com/>Sam Fiorentino & Associates</a> 

Для этого нужны котировки. Окончание / в URL-адресе заканчивается <a> .


Причина, по которой первый работает, а второй – нет:

innerHTML позволяет браузеру интерпретировать html. $(...) интерпретируется jQuery, что делает некоторые причудливые вещи для совместимости браузеров, но иногда имеет недостатки. Некоторые браузеры пытаются исправить плохую разметку, и иногда браузер плохо справляется с этим. jQuery делает их все в основном действующими одинаково.

См. Этот jsfiddle для сравнения: http://jsfiddle.net/Rk7SQ/

 <p>Browser rendering:</p> <p><a target='blank' href=http://www.samfiorentino.com/>Sam Fiorentino & Associates</a></p> <p>jQuery rendering:</p> <p id="jqrender"></p> $(function() { $('#jqrender').html("<a target='blank' href=http://www.samfiorentino.com/>Sam Fiorentino & Associates</a>"); }); 

Вы можете видеть, что они разные.